选择的值在ruby on rails上的页面提交中重置

时间:2013-03-01 05:42:12

标签: ruby-on-rails ruby ruby-on-rails-3

我不想在提交表单时从下拉列表和选中的单选按钮中休息所选值。 在两个单选按钮的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%>

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

1 个答案:

答案 0 :(得分:1)

将collection_select代码更改为

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