(рельсы) скрытые элементы формы, не предоставляющие значения контроллеру
У меня есть следующая форма:
<% form_for(:tag, :url => {:action => "post_tag", :id => @photoID}) do |form| %>
<%= error_messages_for(:tag) %>
<% if @errors then %>
<%= @errors[0] %>
<% end %>
<p><%= form.select(:user_id, @userHash) %></p>
<p><%= form.hidden_field(:xpos) %></p>
<p><%= form.hidden_field(:ypos) %></p>
<p><%= form.hidden_field(:width) %></p>
<p><%= form.hidden_field(:height) %></p>
<%= submit_tag "Submit Tag" %>
<% end %>
Но ни одно из значений не заполняется в контроллере. Я знаю, что все значения заполнены в представлении, потому что я вижу, что они имеют правильные значения в Firebug. В контроллере я пытаюсь получить к ним доступ как params[:xpos]
для :xpos hidden_field
, Это правильно???
1 ответ
Решение
Делать logger.debug params.inspect
, У меня есть подлое подозрение, которое вы увидите params[:tag][:xpos]
там:)
Вы передали имя для тега там (form_for(:tag, ...) do |form|
), это обернет все поля, построенные как form.field(...)
в хэше, идентифицированном переданным именем (в данном случае "тег").