Неопределенный метод `слияние 'для'####': строка <% = 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] %>