Ruby on rails 在RubyonRails中,选择的值在页面提交中重置

Ruby on rails 在RubyonRails中,选择的值在页面提交中重置,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我不想在提交表单时保留下拉列表和选中单选按钮中的选定值。 在onclick的两个单选按钮中,我必须提交表单,提交后,它似乎会重置所选的值。 这是我使用的代码 <%= form_tag(:action =>"show", :method => "post") do %> <%= @name %>. <strong>Select device: </strong> <%= collection_select(:dev

我不想在提交表单时保留下拉列表和选中单选按钮中的选定值。 在onclick的两个单选按钮中,我必须提交表单,提交后,它似乎会重置所选的值。 这是我使用的代码

 <%= form_tag(:action =>"show", :method => "post") do %>
    <%= @name %>.
    <strong>Select device: </strong> <%= collection_select(:device, :id, @devices, :id, :name, options ={:selected => params[:name],:prompt => "-Select a device"}) %>
    <br></br>
    <strong>Chose: </strong>
    <%=  radio_button_tag :name,:time,@name.eql?('time'),:onclick => "this.parentNode.submit();"%>Time

    <%=  radio_button_tag :name,:graph,,@name.eql?('graph') :onclick => "this.parentNode.submit();" %>Graph
    <%end%>
“show”,:method=>“post”)do%>
.
选择设备:参数[:名称],:提示符=>“-选择设备”})%>


选择: “this.parentNode.submit();”%>时间 “this.parentNode.submit();”%>图形

在页面刷新中选择值后,会显示选定值。但单击单选按钮后不会显示选定值。

将集合选择代码更改为

collection_select(:device, :id, @devices, :id, :name, { selected: params.fetch(:device, {})[:id].to_i, :prompt => "-Select a device" }) %>
更新:用于单选按钮

我不确定您是如何设置
@name
的,但由于您使用它来检查单选按钮的状态,因此您应该在控制器中执行此操作

@name = params[:name]
或者,如果您不想这样做,您可以执行以下操作

<%= params[:name] %>.
<%= radio_button_tag :name, :time, params[:name] == 'time', onclick: 'this.parentNode.submit();' %>Time
<%= radio_button_tag :name, :graph, params[:name] == 'graph'), onclick: 'this.parentNode.submit();' %>Graph
。
时间
图表

你能显示提交的javascript吗?javascript不用于提交。我不明白你的意思“this.parentNode.submit()”做什么?我没有看到实际的提交按钮,只有javascript以其他方式进行提交。这似乎与单选按钮有关。。。这很奇怪。在单选按钮“this.parentNode.submit()”的一次单击中,表单提交将执行。无需使用按钮…javascript做什么?我不知道这个.parentNode是什么。但是如果是单选按钮的话?谢谢你,它在下拉菜单的情况下工作。单选按钮怎么可能呢