2015-01-24 4 views
0

, когда я пытаюсь напечатать упорядоченный массив, я получаю эту ошибку «Атрибут должен был быть массив, но был String»ошибка печати сериализованного рубина массива на рельсах

Вот где я пытаюсь напечатать массив

<% unless post.raffle_id.nil? %> 
     Buyers:<% post.raffle_id.each do |t| %> 
      <%= t %> 
     <% end %> 
<% end %> 

Вот где массив определяется после модели

serialize :raffle_id, Array 

типа на raffle_id в базе данных схемы имеет тип текста.

+0

Вы можете показать информацию, присутствующую в атрибуте raffle_id? Он должен выглядеть как '--- [a, b, c]' для массива. – pierallard

+0

что, скорее всего, произошло, так это то, что значение 'raffle_id' было установлено перед добавлением кода для сериализации его в массив. – jvnill

+0

как исправить этот jvnill? –

ответ

0
#post.rb 
class Post < ActiveRecord::Base 
    serialize :raffle_id, Array 
end 

В консоли проверки сообщения:

Post.inspect 
"Post(id: integer .... , raffle_id: text)" 

a = Post.new(raffle_id: [1,2,3]) 
a.save 
Now try to Print variable a value: 
    $ a.raffle_id 
=> [1,2,3] 

Verify выше в консоли, это сработает. :)

+0

, когда я набрал инспектор, это то, что появилось «Post (call« Post.connection », чтобы установить соединение)« все остальное работало, хотя –

+0

Это прекрасно. сначала нам нужно установить соединение. Вы можете запросить все записи или сделать только счет, который будет внутренне устанавливать соединение для вас. :) – Ajay

Смежные вопросы