我有以下关联:
User has_many Order
Order has_many Pages
如何查找属于特定用户的所有页面?不是直接关联,而是表顺序就在它们之间。所以,我不能这样做:
user.pages
我可以做user.orders
答案 0 :(得分:0)
你想要的可能是一个不同的联想。尝试使用has_many:通过关联。
User.rb
has_many :orders
has_many :pages, through: :orders
Order.rb
belongs_to :user
belongs_to :page
Page.rb
has_many :orders
has_many :users, through: :orders
有关详细信息,请查看Rails文档:http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association
如果您真的不需要关于加入模型的更多元数据(在本例中为Order.rb),您也可以简单地使用HABTM关联。
然后:
User.rb
has_and_belongs_to_many :pages
Pages.rb
has_and_belongs_to_many :users
有关此关联的更多信息,请阅读:http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association
有关何时选择其中任何一个的详细信息,请阅读:http://guides.rubyonrails.org/association_basics.html#choosing-between-has-many-through-and-has-and-belongs-to-many