我有两种形式。其中一个有两个字段,名称字段和名为original_number的字段。当表单POST时,它会导致另一种形式,我想要做的一件事是将名称字段和original_number字段存储为第二种形式的隐藏值。
但是,我不知道如何使它对于第二种形式的值字段,rails从POST方法接收信息。
如何使隐藏字段的值使用来自第一个表单的POST的信息?
这是我的第一张表格
<%= form_tag("/find_numbers", :method => "post", :id => "new_user" ) do %>
<%= render 'shared/error_messages' %>
<%= label_tag(:name, "What Are You Tracking?") %>
<%= text_field_tag(:name) %>
<%= label_tag(:original_number, "Your Original Number") %>
<%= text_field_tag(:original_number) %>
<hr class="faded" />
<h4>Choose One Of The Methods Below To Find Your Tracking Number</h4>
<hr class="faded" />
<%= label_tag(:in_postal_code, "Enter Your Postal Code (e.g. 94117):") %>
<%= text_field_tag(:in_postal_code) %>
<%= label_tag(:near_number, "Near this other number (e.g. 4156562345)") %>
<%= text_field_tag(:near_number) %>
<%= label_tag(:contains, "Matching this pattern (e.g. 415***EPIC):") %>
<%= text_field_tag(:contains) %>
<%= submit_tag("Search", :class => "btn btn-large btn-primary") %>
<% end %>
这是我的第二个表单,它接收来自第一个表单的信息:
<%= @numbers.each do |number| %>
<%= form_tag(:controller => "phones", :action => "create" ) do %>
<%= hidden_field(:original_number) %>
<%= hidden_field(:name) %>
<%= hidden_field(:twilio_number, :value => number.phone_number) %>
<div class="found_list">
<div class="found_phone_number">
<%= label_tag(:number, number.friendly_name) %>
</div>
<div class="choose_found_number">
<%= submit_tag("Choose This Number", :class => "btn btn-large btn-success") %>
</div>
</div>
<hr>
<% end %>
<% end %>
注意
<%= hidden_field(:original_number) %>
<%= hidden_field(:name) %>
请注意第一个表单发送的请求参数,
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"RMvjP9PQt9hVEJE449pMqgqnFcreqvXtmZFEyU+641g=",
"name"=>"Stepan Parunashvili",
"original_number"=>"1231231234",
"in_postal_code"=>"",
"near_number"=>"",
"contains"=>"415"}
如何获取“name”=&gt;“Stepan Parunashvili”,填写隐藏字段:name,以及“original_number”=&gt;“1231231234”,以填充隐藏字段的字段:original_number?
感谢您对我的感谢,直到现在,我们将非常感谢您的帮助!
答案 0 :(得分:2)
试试这个
<%= hidden_field :original_number, params[:original_number] %>
<%= hidden_field :name, params[:name] %>
答案 1 :(得分:1)
hidden_field
方法有两个版本:一个是ActionView::Helpers::FormBuilder类的实例方法,它接受一个参数,一个是ActionView::Helpers::FormHelper中的辅助方法,它有两个强制性论点。由于您没有使用表单助手,因此您将调用第二个版本,这会为您提供参数错误。
简单修复:改为使用hidden_field_tag方法:
hidden_field_tag(:original_number)
或者如果您还想提供值:
hidden_field(:original_number, params[:original_number)
Aayush的回答也是有效的,但是这样你的表单就是一致的,因为你对其他表单字段使用了*_tag
方法。