尝试从表行获取内容时出现"undefined method `content' for #<ActiveRecord::Relation:> "错误



当我把@user.dreams放在我的视图中时,我得到:

[# Dream id: 3, content: "My Dream", user_id: 2, created_at: "2011-10-06 21:58:50", updated_at: "2011-10-06 21:58:50">]

现在我只想打印出这一行的content: data。但是当我输入:

@user.dreams.content@user.content

我得到"未定义的方法'内容'错误。

@user.id正确输出"2"。

如何从这一行打印出"My Dream"内容?

如果dreams是一个用户关联,那么你需要做

@user.dreams.first.content

或遍历@user.dreams

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

dreams调用返回一个ActiveRecord::Relation对象,因为它是一个对象集合。如果你想要所有梦想的所有内容,你必须把它当作一个数组:

@user.dreams.map(&:content)

同样,@user.content也不能工作,因为contentDream对象上的属性,而不是User对象。

最新更新