13

POSTすると、別のフォームをレンダリングするフォームがあります。私がやりたいのは、最初のフォームから2番目のフォームの特定の非表示フィールドにパラメーターを渡すことです。

2番目のフォームはform_forフォームヘルパーを使用しています。私がやろうとしているのは、投稿されているパラメーターを受け入れるようにすることです。

フォームは次のようになります。

    <%= 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 %>

私が何かをするとき

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

アクションは私にエラーを与えます:

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

「1231231234」はフォームにPOSTされているパラメーターですが、受け入れていないようです。

パラメータを受け入れるフォームを取得する方法についてのアイデアはありますか?

params []を削除してもエラーは発生しませんが、パラメーターも非表示フィールドに入力されません。

4

1 に答える 1

35

の2番目のパラメータは、値ではなくオプションハッシュhidden_fieldである必要があります

<%= f.hidden_field :original_number, :value => params[:original_number] %>
于 2012-10-04T16:55:30.480 に答える