'####'的未定义方法`merge':string<%= form_for%>帮手

时间:2012-10-04 16:53:00

标签: ruby-on-rails ruby

我有一个表单,在POST时,会呈现另一个表单。我想要做的是将参数从第一个表单传递到第二个表单的某些隐藏字段。

第二种形式是使用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 []时,错误不会发生,但参数也不会填充在隐藏字段中。

1 个答案:

答案 0 :(得分:29)

hidden_field中的第二个参数应为option hash,而不是值

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