2012-10-04 8 views
8

Ich habe ein Formular, das bei POST ein anderes Formular rendert. Was ich tun möchte, ist, die Parameter von der ersten Form in bestimmte versteckte Felder der zweiten Form zu übergeben.Nicht definierte Methode `merge 'für' #### ': Zeichenfolge <% = Formular_für%> Helfer

Die zweite Form verwendet einen form_for formular Helfer, und was ich versuche zu tun, ist es, um die Parameter zu bekommen, die an sie gesendet werden.

Hier ist, was die Form wie folgt aussieht:

<%= form_for(@phone) do |f| %> 
     <%= f.hidden_field :original_number, params[:original_number] %> 


     <%= f.hidden_field :name, params[:name] %> 
     <%= f.hidden_field :twilio_number, number.phone_number %> 

     <div class="found_list"> 
      <div class="found_phone_number"> 
       <%= f.label :number, number.friendly_name) %> 
      </div> 
      <div class="choose_found_number"> 
      <%= f.submit "Choose This Number", :class => "btn btn-large btn-success" %> 
      </div> 
     </div> 
      <hr> 
    <% end %> 

Wenn ich etwas tun wie

<%= f.hidden_field :original_number, params[:original_number] %> 

Die Aktion mir den Fehler gibt:

NoMethodError in Find_numbers#create 

Showing C:/Sites/dentist/app/views/phones/new.html.erb where line #17 raised: 

undefined method `merge' for "1231231234":String 

Die "1231231234" ist der Parameter, der an das Formular gesendet wird, scheint dies jedoch nicht zu akzeptieren.

Haben Sie eine Vorstellung davon, wie ich das Formular erhalten würde, um den Parameter zu akzeptieren?

Wenn ich die Parameter [] entfernt habe, tritt der Fehler nicht auf, aber die Parameter werden auch in den ausgeblendeten Feldern nicht aufgefüllt.

Antwort

27

Sekunden Parameter in hidden_field sollte

<%= f.hidden_field :original_number, :value => params[:original_number] %> 
+0

Ja ein option hash, kein Wert sein! Vielen Dank für die Klärung. –

Verwandte Themen