0

在 Rails 中使用双复数的最佳方法是什么?我有一些has_and_belongs_to_many关系,我想要类似的东西:

@templates = current_user.brands.templates

但我能做的最接近的是这样的:

current_user.brands.each do |b|
  @templates = b.templates
end

有什么想法吗?

4

2 回答 2

2

您可以在用户模型中使用通过关联。

class User < ActiveRecord::Base
  has_many :templates, :through => : brands
  ....
end

然后,

@templates = current_user.templates

或者,

您还可以通过遍历品牌数组并为每个品牌收集模板来获得结果:

@templates = current_user.brands.map{|brand| brand.templates}.flatten
于 2013-08-06T04:33:31.427 回答
1

我不认为你可以有类似的东西brands.templates。如果您想收集来自多个品牌的模板,唯一的方法是“收集”您正在浏览的每个品牌的模板:

@templates = []
current_user.brands.each do |b|
  @templates.push(b.templates)
end

has_and_belongs_to_many关联一样,has_many关联会生成方法brand.templatestemplate.brands,但不会生成brands.templates

于 2013-08-06T04:34:00.237 回答