【发布时间】:2014-09-18 09:12:37
【问题描述】:
我有以下模型结构:
class User < ActiveRecord::Base
has_many :favorites
end
class Favorite < ActiveRecord::Base
belongs_to :user
belongs_to :company
end
class Color < ActiveRecord::Base
belongs_to :company
end
class Company < ActiveRecord::Base
has_many :colors
has_many :favorities
end
这意味着一家公司有多种颜色。每个用户都可以收藏一家公司(然后我可以打印出相应公司提供的每种颜色)。
但我正在尝试显示我收藏的公司提供的所有颜色。
我试过这样:
favorited_colors = current_user.favorites.colors
undefined method `colors' for #<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Favorite:0x007fe037da01f0>
和
favorited_colors = current_user.favorites.companies.colors
undefined method `companies' for #<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_Favorite:0x007fe038ce8db0>
除了通过 each 循环遍历所有收藏的公司并将所有颜色保存到数组中之外,还有其他方法可以从收藏的公司获取所有颜色的列表吗?
谢谢
【问题讨论】:
-
你没有用户和公司之间的联系,也没有用户和颜色之间的联系。因此,不,没有办法得到你正在尝试的东西
标签: ruby-on-rails ruby model associations has-many