#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
объект.