0

私には2つの形式があります。そのうちの1つには、nameフィールドとoriginal_numberというフィールドの2つのフィールドがあります。フォームがPOSTすると、別のフォームにつながります。私がやりたいことの1つは、名前フィールドとoriginal_numberフィールドを2番目のフォームの非表示の値として格納することです。

ただし、2番目の形式の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 %>

そして、これが私の2番目のフォームで、最初のフォームから情報を受け取ります。

<%= @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」=>「StepanParunashvili」を取得して: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

メソッドには2つのバージョンがあります。1つは1つのパラメーターを受け取るActionView::Helpers :: FormBuilderクラスhidden_fieldのインスタンスメソッドであり、もう1つは2つの必須引数を持つActionView :: Helpers::FormHelperのヘルパーメソッドです。フォームヘルパーを使用していないため、この2番目のバージョンを呼び出しています。これにより、引数エラーが発生します。

簡単な修正:代わりにhidden_​​field_tagメソッドを使用してください。

hidden_field_tag(:original_number)

または、値も提供する場合:

hidden_field(:original_number, params[:original_number)

Aayushの答えも同様に機能しますが*_tag、他のフォームフィールドのメソッドを使用するため、この方法でフォームが構成されます。

于 2012-10-04T12:04:24.253 に答える