2012-10-04 3 views
0

두 가지 형식이 있습니다. 그 중 하나에는 이름 필드와 original_number라는 필드라는 두 개의 필드가 있습니다. 양식 POST는 다른 양식으로 연결되며, 한 가지해야 할 것은 이름 필드와 original_number 필드를 두 번째 양식의 숨겨진 값으로 저장하는 것입니다.레일 <% = hidden_field %> 잘못된 인수 수 (1의 경우 2)

그러나 두 번째 형식의 값 필드에 대해 레일스가 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 방법의 두 가지 버전이 있습니다이

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

니스! Aayush, 효과가있었습니다. 한 가지 오타가 있지만 param 대신 params입니다. 빠른 응답을 주셔서 감사합니다! –

+0

실수를 수정했습니다 –

+0

다른 사람이 다른 기존 솔루션을 시도하지 않도록 답변을 수락하십시오 –

1

시도 : 하나는 하나 개의 매개 변수를 취하는 ActionView::Helpers::FormBuilder 클래스의 인스턴스 방법이며, 다른 하나는 두 개의 필수 인수가 ActionView::Helpers::FormHelper에서 헬퍼 방법입니다 . 양식 도우미를 사용하지 않으므로,이 두 번째 버전을 호출하면 인수 오류가 발생합니다. 당신은 또한 가치를 제공하려는 경우

hidden_field_tag(:original_number) 

나 :

간단한 수정 : 대신 hidden_field_tag 방법을 사용

hidden_field(:original_number, params[:original_number) 

Aayush의 대답은 잘 작동하지만,이 방법은 양식이 constisten한다 다른 양식 필드에 *_tag 메소드를 사용하고 있기 때문입니다.

관련 문제