-1

次のようなジョブ レコードを保存すると、「スパンが無効です」というエラーが表示されます。

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

Rails 5.0 ではこのエラーは発生しませんでしたが、アップグレード時にスパンを関連付けることができません。

データはかなり標準的な Rails フォームから取得され、各スパンにチェックボックスがあります。

#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
4

1 に答える 1

1

From Rails 5.2belongs_toがデフォルトで必要です。optional: trueエラーを削除するには、言及する必要があります。

関連する PR: https://github.com/rails/rails/pull/18937

関連する Rails リポジトリの問題: https://github.com/rails/rails/issues/23960

于 2018-05-30T17:31:24.550 に答える