0

私のモデルには、次のようないくつかの関連付けがあります。

has_many :posts
has_many :comments, :through => :posts
belongs_to :user

パラメータで指定されたように、関連するオブジェクトを収集するメソッドもあります。

def selected_associations(*associations)
  associations.collect{|association| self.association}
end

問題は、どのように渡すの*associationsですか? 私はシンボルの配列でそうしようとしました:

self.selected_associations([:posts, :comments])

しかし、それはうまくいきません。それらを文字列として渡すこともありません。おそらく私はこれに正しい方法でアプローチしていませんか?

4

1 に答える 1

1

ここで2点。

まず、self.associationうまくいきません。これを次のように変更する必要があります。

def selected_associations(*associations)
  associations.collect{|association| self.public_send(association)}
end

メソッド呼び出しについては、ハッシュとして渡す必要があります。

selected_associations :posts, :comments

一番。

于 2013-03-20T23:58:22.333 に答える