我在rails应用程序中的ruby中创建了一个simple_form。它工作正常,除非表单中有错误,表单重新加载,此时我丢失了url中的params。
(我已经读过Keep params after render Ruby on Rails和Rails 3 Render => New with Parameter)
这是控制器代码:
def new
@parts = Part.where(id: params[:part_id])
@part = params[:part_id]
@traveller = Traveller.new
end
def create
if @traveller.save
redirect_to edit_part_path(:id => @traveller.part_id)
flash[:notice] = t('alert.create')
else
@part = [:traveller][:part_id]
@parts = Part.where(id: params[:part_id])
render :action => "new", :part_id => @part
end
end
这是视图代码
<%= simple_form_for @traveller, html: { class: "sigPad"} do |f| %>
<%= f.input :name %>
<%= f.input :surname %>
<%= f.input :part_id , label: 'part',readonly: true, input_html: {id: 'part_id', value: params[:part_id] }%>
<% end %>
我检查是否提交了part_id。
我的问题是如何在重新加载页面时将part_id保留在params中。注意
我找到了解决方案,
在行动新:
@traveller.part_id = params[:part_id]