0

我有两种形式。其中一个有两个字段,名称字段和一个名为 original_number 的字段。当表单发布时,它会导致另一个表单,我想做的一件事是将 name 字段和 original_number 字段存储为第二个表单中的隐藏值。

但是,我不确定如何实现,以便对于第二种形式的 value 字段,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"}

我如何获得“名称”=>“Stepan Parunashvili”来填充:name 的隐藏字段,以及“original_number”=>“1231231234”来填充隐藏字段:original_number 的字段?

感谢您对我的包容直到现在,任何帮助将不胜感激!

4

2 回答 2

2

尝试这个

          <%= hidden_field :original_number, params[:original_number] %>
          <%= hidden_field :name, params[:name] %>
于 2012-10-04T11:41:01.760 回答
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其他表单字段的方法。

于 2012-10-04T12:04:24.253 回答