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.templatesおよび を生成しますが、 は生成しtemplate.brandsませんbrands.templates

于 2013-08-06T04:34:00.237 に答える