1

コントローラーには次のものがあります。

@campaign = Campaign.where(:id => params[:id])
@companies = @campaign.companies.sort { |a,b| a.name <=> b.name` }

2行目は未知の方法を示してcompaniesおり、以前は正常に機能していました。

これは私のキャンペーンモデルです:

has_many :companies, :through => :contacts, :uniq => true

次のことを試しましたが、まだ修正されませんでした。

has_many :companies, :through => :contacts, :uniq => true, :source => :company

4

1 に答える 1

2
@campaign = Campaign.where(:id => params[:id])

結果の配列を返します (おそらく 1 つの項目だけですが、配列です)。あなたが受け取っている「No Method Error」は、Arrayクラスにメソッドがないためですcompanies

.first結果セットを呼び出したい場合:

@campaign = Campaign.where(:id => params[:id]).first

または単に使用します.find

@campaign = Campaign.find(params[:id])
于 2011-05-31T23:49:23.380 に答える