2016-11-15 13 views
2

Я использую Rails 5.0.0. У меня есть эта модельКак мне присвоить поле own_to необязательно?

class Scenario < ApplicationRecord 
    belongs_to :grading_rubric 
    has_many :confidential_memo 
end 

но когда я призываю мой создать метод для модели, она не

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)?

ответ

2

Раньше было так, что вы могли просто оставить значение nil, а Rails было совершенно счастливо. Однако это было изменено в Rails 5.

Если вы хотите belongs_to быть необязательными, вы просто должны пройти optional: true:

belongs_to :grading_rubric, optional: true 

Вы можете найти более подробную информацию об этом here