2012-10-04 54 views
0

我有兩種形式。其中一個有兩個字段,名稱字段和一個名爲original_number的字段。當表單POST時,它會導致另一種形式,我想要做的一件事就是將名稱字段和original_number字段作爲第二種形式的隱藏值存儲。Rails <%= hidden_​​field%>參數的錯誤數目(1爲2)

但是,我不確定如何使它爲第二個窗體的值字段,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」=>「Stepan Parunashvili」,以填充隱藏字段爲:名稱和「original_number」=>「1231231234」,以填充隱藏字段的字段:original_number?

感謝您對我的支持,直到現在,任何幫助將不勝感激!

回答

2

試試這個

  <%= hidden_field :original_number, params[:original_number] %> 
      <%= hidden_field :name, params[:name] %> 
+0

不錯! Aayush,它的工作。儘管這裏有一個錯字,而不是param,但它是params。感謝您的快速響應! –

+0

糾正了錯誤 –

+0

接受答案,以便沒有其他人嘗試任何其他不存在的解決方案 –

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的回答可以作爲很好,但這樣一來你的形式constisten ,因爲您使用*_tag方法來處理其他表單字段。

相關問題