Получение «содержимого неопределенного метода` для # » ошибка при попытке получить содержимое из строки таблицы

#ruby-on-rails #ruby

#ruby-на-рельсах #рубиновый #ruby-on-rails #ruby

Вопрос:

Когда я вкладываю @user.dreams свой взгляд, я получаю:

[# Идентификатор мечты: 3, содержимое: «Моя мечта», идентификатор пользователя: 2, created_at: «2011-10-06 21:58:50», обновленный_ат: «2011-10-06 21:58:50»>]

Теперь я хочу распечатать ТОЛЬКО содержимое: данные из этой строки. Но когда я положил:

@user.dreams.content или @user.content

Я получаю сообщение об ошибке «содержимое неопределенного метода».

@user.id правильно выводит «2».

Как мне распечатать содержимое «Моей мечты» из этой строки?

Ответ №1:

если dreams — это ассоциация для пользователя, вам нужно будет сделать

 @user.dreams.first.content
  

или выполнить итерацию через @user.dreams

например

 <% @user.dreams.each do |dream| %>
 <%= dream.content %>
<% end %>
  

Ответ №2:

dreams Вызов возвращает ActiveRecord::Relation объект, потому что это коллекция объектов. Если вам нужно все содержимое для всех снов, вам придется обращаться с ним как с массивом:

 @user.dreams.map(amp;:content)
  

Кроме того, @user.content не будет работать, потому content что это атрибут Dream объекта, а не User объект.