RoR“有很多”链接>如何通过外键获取标题?
我在 RoR 中有一个基本的关系问题:
在视图中,我尝试显示组的标题,该标题位于表“groups”中,并且只有键“group_id”存储在表/对象“product”中。
当我编写product.group_id时,我会在数据库中看到该值,但是如果我编写product.group.title,RoR会告诉我#的未定义方法“group”。
这是一个基本问题,所以我感谢您的帮助!
视图中的代码(这可以工作,但太糟糕了!我确信有一种像product.group.title这样的方法)
<% @products.each do |product| %>
<%= Group.find(product.group_id).title %> </td>
<% end %>
和模型:
class Group < ActiveRecord::Base
has_many :products, :dependent => :destroy
end
class Product < ActiveRecord::Base
belongs_to :groups
has_and_belongs_to_many :authors
end
I have a basic question of relationship in RoR :
In a view, I try to display the title of a group, which is in the table "groups", and only the key "group_id" is stored in the table/object "product".
When I write product.group_id, I see the value in the database, but if I write product.group.title, RoR tolds me undefined method `group' for #.
This is a basic question so I appreciate your help !
The code in the view (this works but is so awful ! I'm sure there is a way like product.group.title)
<% @products.each do |product| %>
<%= Group.find(product.group_id).title %> </td>
<% end %>
and the models :
class Group < ActiveRecord::Base
has_many :products, :dependent => :destroy
end
class Product < ActiveRecord::Base
belongs_to :groups
has_and_belongs_to_many :authors
end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
应该是
belongs_to :group
而不是groups
另外,在您看来,您可以更轻松地执行此操作:
Should be
belongs_to :group
notgroups
Also, in your view, you could more easily do this: