Неопределенный метод `слияние 'для'####': строка <% = form_for%> помощник

У меня есть форма, которая при отправке создает другую форму. Я хотел бы передать параметры из первой формы в определенные скрытые поля второй формы.

Вторая форма использует помощник формы 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" - это параметр, который отправляется в форму, но, похоже, он его не принимает.

У вас есть представление о том, как я получу форму для принятия параметра?

Когда я удалил params[], ошибка не произошла, но параметры также не заполняются в скрытых полях.

1 ответ

Решение

Второй параметр в hidden_field должен быть опциональным хешем, а не значением

<%= f.hidden_field :original_number, :value => params[:original_number] %>
Другие вопросы по тегам