渲染新的时,在简单形式的URL中丢失参数

问题描述 投票:1回答:1

我在rails应用程序中的ruby中创建了一个simple_form。它工作正常,除非表单中有错误,表单重新加载,此时我丢失了url中的params。

(我已经读过Keep params after render Ruby on RailsRails 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中。注意

ruby-on-rails parameters simple-form
1个回答
0
投票

我找到了解决方案,

在行动新:

@traveller.part_id = params[:part_id]
© www.soinside.com 2019 - 2024. All rights reserved.