在 Rails 中使用双复数的最佳方法是什么?我有一些has_and_belongs_to_many
关系,我想要类似的东西:
@templates = current_user.brands.templates
但我能做的最接近的是这样的:
current_user.brands.each do |b|
@templates = b.templates
end
有什么想法吗?
在 Rails 中使用双复数的最佳方法是什么?我有一些has_and_belongs_to_many
关系,我想要类似的东西:
@templates = current_user.brands.templates
但我能做的最接近的是这样的:
current_user.brands.each do |b|
@templates = b.templates
end
有什么想法吗?
您可以在用户模型中使用通过关联。
class User < ActiveRecord::Base
has_many :templates, :through => : brands
....
end
然后,
@templates = current_user.templates
或者,
您还可以通过遍历品牌数组并为每个品牌收集模板来获得结果:
@templates = current_user.brands.map{|brand| brand.templates}.flatten
我不认为你可以有类似的东西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
。