我有一张用于创建票据的表单,该表单需要一个项目的ID。这有效,但不涉及验证。如果验证不会通过'render:new'并且project_id不附带它。发送参数进行渲染
我已经尝试了'redirect_to new_ticket_path(:project_id => params [:ticket] [:project_id]),它再次呈现窗体,但错误消息不会显示出来,所以看起来我需要使用'render :新'。
如何将project_id传递回表单或从表单到达project_id而不传递它?
def new
@ticket = Ticket.new
@id = params[:project_id]
@project = Project.find(@id)
end
def create
@ticket = Ticket.new(params[:ticket].merge(:user_id => current_user.id))
if @ticket.save
redirect_to @ticket
else
render :new <--- will render without the project_id
end
end
尝试了您的解决方案,但得到以下错误:“未定义的方法项目”为#“...引用 - >”<%= f.hidden_field:project_id,:value => @ ticket.project.id %>“ –
holyredbeard
2013-02-14 15:12:58
好吧,像Ticket,Project和project_id这样的名字,我认为这就是名字。您的票务必须有'belongs_to:项目'或类似的,对吗?您需要使用关系的名称。 – Jim 2013-02-14 15:14:52
.....有一个? :) – holyredbeard 2013-02-14 15:15:20