在Rails中使用双复数的最佳方法是什么?我有一些has_and_belongs_to_many
关系,我想要类似的东西:
@templates = current_user.brands.templates
但我能做的最接近的是:
current_user.brands.each do |b|
@templates = b.templates
end
有什么想法吗?
答案 0 :(得分:2)
您可以在用户模型中使用关联。
class User < ActiveRecord::Base
has_many :templates, :through => : brands
....
end
然后,
@templates = current_user.templates
或者,
您还可以通过遍历品牌数组并为每个品牌收集模板来获得结果:
@templates = current_user.brands.map{|brand| brand.templates}.flatten
答案 1 :(得分:1)
我认为你不能拥有brands.templates
之类的东西。如果您想拥有来自多个品牌的模板集合,唯一的方法是“收集”您正在查看的每个品牌的模板:
@templates = []
current_user.brands.each do |b|
@templates.push(b.templates)
end
has_and_belongs_to_many
关联与has_many
关联一样,会生成方法brand.templates
和template.brands
,但不生成brands.templates
。