从新方法获取对象id的值以进行创建

时间:2016-05-20 11:35:21

标签: ruby-on-rails ruby

我从创建新方法获取找到的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

1 个答案:

答案 0 :(得分:1)

我通过添加隐藏字段解决了我的问题。

= f.input :person_id, as: :hidden, input_html: { value: @person.id}