我从创建新方法获取找到的id的值时遇到问题。
新方法:
def new
@vacation = Vacation.new
@vacation.person = @person
end
@person的结果:
#<id: 1, first_name: ... >
@ vacation.person也很好。 现在一切都很好。但在此之后,当我填写表格并点击提交时:
def create
@vacation = Vacation.new(vacation_params)
end
结果:
#<Vacation id: ..., person_id: nil >
但现在@person是零,也是@ vacation.person是零。我不知道如何发送id的值来创建方法。
查找ID的方法。
before_action :set_person
private
def set_person
@person = Person.find(params[:id]) unless params[:id].blank?
end
vacation_params:
def vacation_params
params.require(:vacation).permit(:start_at, :end_at, :free, :reason, :person_id, :accepted)
end
答案 0 :(得分:1)
我通过添加隐藏字段解决了我的问题。
= f.input :person_id, as: :hidden, input_html: { value: @person.id}