使用Embedded Ruby在Rails 3中有条件地包含隐藏的表单字段

时间:2013-01-31 05:57:42

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

如果在呈现表单的请求中包含url参数,我正在尝试使用Embedded Ruby在表单中包含隐藏字段。出于某种原因,无论是否存在url参数,都不包括隐藏字段。它是Rails 3.2应用程序的一部分。任何有关这方面的帮助将不胜感激。

以下是我的index.html.erb视图中的相关表单:

<form action="/contacts" method="get" id="contacts-index">
  <input name="city" value="<%= params[:city] %>" type="hidden">
  <input name="state" value="<%= params[:state] %>" type="hidden">
  <input name="zip" value="<%= params[:zip] %>" type="hidden">
  <% if params[:fi_ase] == true or params[:fi_ase] == false %>
    <input name="fi_ase" value="<%= params[:fi_ase] %>" type="hidden">
  <% end %>
  <% if params[:fi_ame] == true or params[:fi_ame] == false %>
    <input name="fi_ame" value="<%= params[:fi_ame] %>" type="hidden">
  <% end %>
.
.
.
.
</form>

页面渲染得很好但是在向/ contacts发送请求后,“fi_ase”和“fi_ame”隐藏字段不存在?fi_ase = true&amp; fi_ame = true

3 个答案:

答案 0 :(得分:1)

尝试:

<% if params[:fi_ase] == "true" or params[:fi_ase] == "false" %>
  <input name="fi_ase" value="<%= params[:fi_ase] %>" type="hidden">
<% end %>
<% if params[:fi_ame] == "true" or params[:fi_ame] == "false" %>
  <input name="fi_ame" value="<%= params[:fi_ame] %>" type="hidden">
<% end %>

parameter values are always strings;

答案 1 :(得分:0)

<%= hidden_field_tag('fi_ase', params[:fi_ase]) if params[:fi_ase] == "true" or params[:fi_ase] == "false" %> 
<%= hidden_field_tag('fi_ame', params[:fi_ame]) if params[:fi_ame] == "true" or params[:fi_ame] == "false" %>

答案 2 :(得分:0)

试试这个,

&lt;%= hidden_​​field_tag“some_id”,@ some%&gt;标签会帮助你..