我有一个表单,在create
之后,我希望保存表单中未包含的其他变量。因此,在我的创建方法中,我有一行params[:invitation][:person_two_id] = @person_two.id
(见下文)。通过在.save
之前调用此行,我认为在保存邀请时会包含person_two_id
。然而,这种情况并非如此。调试器(参见下面放置调试器的代码)显示:
params[:invitation][:person_two_id]
是101
@invitation
nil
的值为person_two_id
:#<Invitation id: 171, person_one_id: nil, person_two_id: nil, organization_id: 87, email: "example@example.com", message: "dsfsd", created_at: "2015-07-07 14:36:35", updated_at: "2015-07-07 14:36:35">
因此,在保存@invitation时,还没有自动保存@invitation的person_two_id
值。为什么不?我该怎么办?
我的控制器方法:
def create
@invitation = Invitation.new(new_params)
@person_two = User.find_by(email: params[:invitation][:email].downcase)
params[:invitation][:person_two_id] = @person_two.id
@invitation.save
debugger
InvitationMailer.invitation(@invitation).deliver_now
end
答案 0 :(得分:0)
我只需要将params[:invitation][:person_two_id] = @person_two.id
替换为@invitation.person_two_id = @person_two.id
即可。