Rails 4通过关系多对多

时间:2014-01-25 02:14:13

标签: ruby-on-rails has-many-through

我有3个工作岗位,县和县。

县有:

has_many :countyizations
has_many :jobs, :through => :countyizations

县化有:

belongs_to :county
belongs_to :job

工作有:

has_many :countyizations
has_many :counties, :through => :countyizations

我正在使用simple_forms并在我的创建/编辑表单中包含以下内容。

<%= f.association :counties, :as => :check_boxes, :collection => County.all.sort, :selected => @job.counties, :label => false %>

这确实生成了我在数据库中所有县的复选框,我可以检查它们,但是当我创建或编辑记录时,“县化”协会不会。我是否需要在作业控制器的“params.require”部分添加内容?我已经在这方面工作了好几天而且非常沮丧。任何帮助都非常感谢!!

1 个答案:

答案 0 :(得分:0)

你需要在两个模型(工作和县)之间的控制器中实际建立关系。

你的jobs_controller.rb中的

添加

def create
    @job = Job.new(job_params)
    @job.counties.build
    if @job.save 
       ..
    else 
      ..
    end
end

private

  def job_params
    params.require(:job).permit(:your_param_1, :your_param_2)
  end