尝试从表行获取内容时,为#<activerecord :: relation:>获取“未定义的方法`内容”错误</activerecord :: relation:>

时间:2011-10-06 22:24:38

标签: ruby-on-rails ruby

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

[#Dream id:3,内容:“我的梦想”,user_id:2,created_at:“2011-10-06 21:58:50”,updated_at:“2011-10-06 21:58:50” &GT;]

现在我想打印出来的内容:来自这一行的数据。但是当我把:

@user.dreams.content@user.content

我收到“未定义的方法`内容”错误。

@user.id正确打印出“2”。

如何从这一行打印出“我的梦想”内容?

2 个答案:

答案 0 :(得分:1)

dreams调用返回ActiveRecord::Relation对象,因为它是对象的集合。如果你想要所有梦想的所有内容,你将不得不像对待数组一样对待它:

@user.dreams.map(&:content)

此外,@user.content无效,因为contentDream对象的属性,而不是User对象。

答案 1 :(得分:1)

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

@user.dreams.first.content

或迭代@ user.dreams

例如

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