如何使belongs_to字段可选?

时间:2016-11-15 22:54:41

标签: ruby-on-rails model optional belongs-to

我正在使用Rails 5.0.0。我有这个模型

class Scenario < ApplicationRecord
  belongs_to :grading_rubric
  has_many :confidential_memo
end

但是当我为模型调用我的create方法时,它失败了

  def create
    @scenario = Scenario.new(scenario_params)
    respond_to do |format|
      if @scenario.save
        puts "saved successfully."
        format.html { redirect_to confidential_memo_path(@scenario), notice: 'Saved successfully.' }
      else
        puts "full messages: #{@scenario.errors.full_messages}"
        format.html { render action: "show" }
      end
    end
  end

我得到的错误是

full messages: ["Grading rubric must exist"]

我如何指出belongs_to参数应该是可选的(也就是说,允许为null)?

1 个答案:

答案 0 :(得分:3)

过去,您可以将值保留为nil,而Rails非常高兴。然而,这在Rails 5中已经改变了。

如果您希望belongs_to是可选的,则只需传递optional: true

belongs_to :grading_rubric, optional: true

您可以找到有关它的更多信息here