我的控制器中有以下内容:
@campaign = Campaign.where(:id => params[:id])
@companies = @campaign.companies.sort { |a,b| a.name <=> b.name` }
第二行为companies
提供了一种未知方法,之前它运行良好。
这是我的广告系列模型:
has_many :companies, :through => :contacts, :uniq => true
我尝试了以下内容但仍然无法解决问题:
has_many :companies, :through => :contacts, :uniq => true, :source => :company
答案 0 :(得分:2)
@campaign = Campaign.where(:id => params[:id])
返回一个结果数组(可能只是一个项目,但仍然是一个数组)。您收到的“无方法错误”是因为Array
类没有companies
方法。
您要么在结果集上调用.first
:
@campaign = Campaign.where(:id => params[:id]).first
或者只使用.find
:
@campaign = Campaign.find(params[:id])