在Rails 5.2中使用Has_Many_Through记录保存记录

时间:2018-05-30 16:21:02

标签: ruby-on-rails ruby-on-rails-5.2

保存以下作业记录时,我收到“spans invalid”错误:

#job.rb
class Job < ApplicationRecord
    has_many :workspans
    has_many :spans, through: :workspans
end

我没有在rails 5.0中收到此错误,但在升级时,我无法关联跨度。

数据来自相当标准的轨道表格,每个跨度都有一个复选框。

#new.html.erb
<%= Span.each do |span| %>
  <%= check_box_tag "job[span_ids][]", span.id %>
<% end %>

发生了什么变化,我现在应该如何设置表格以将跨度与@job相关联?

更新,详情

#jobs_controller
  def create
    @job = Job.new(job_params)    
    if @job.save
      flash[:success] = "Job Saved"
      redirect_to  action: :index
    else
      flash[:alert] = "Job Not Saved"
      render 'new'
    end
  end

1 个答案:

答案 0 :(得分:1)

来自Rails 5.2默认情况下需要belongs_to。您需要提及optional: true以删除错误。

相关公关:https://github.com/rails/rails/pull/18937

关于Rails repo的相关问题:https://github.com/rails/rails/issues/23960