通过深度关联访问 rails 属性
Posted
技术标签:
【中文标题】通过深度关联访问 rails 属性【英文标题】:Accessing rails attributes through deep associations 【发布时间】:2013-08-20 22:56:29 【问题描述】:这是我的相关模型:
class ListItem < ActiveRecord::Base
belongs_to :inventory_item
belongs_to :shopping_list
belongs_to :item
end
class ShoppingList < ActiveRecord::Base
has_many :list_items
belongs_to :user, :foreign_key => :user_id
end
class InventoryItem < ActiveRecord::Base
belongs_to :item, :foreign_key => :item_id
belongs_to :vendor
has_many :list_items
end
我正在尝试在我的视图中访问 InventoryItem 的属性。这是我目前在我的ShoppingListController
中拥有的内容。
def show
@list_items = ShoppingList.find(params[:id]).list_items
end
我可以做类似@inventory_items = @list_items.inventory_items
的事情吗?我尝试过的代码和它的变体没有用。我在这里想念什么?通过这样的多个模型访问属性的任何提示?提前致谢!
【问题讨论】:
显示什么错误? 【参考方案1】:最直接的方法是在 ShoppingList 类上使用 has_many:
has_many :inventory_items, through: :list_items
【讨论】:
正是我所缺少的。谢谢!以上是关于通过深度关联访问 rails 属性的主要内容,如果未能解决你的问题,请参考以下文章
如何在has_many中获取模型的属性:通过Rails 5中的关联