(рельсы) скрытые элементы формы, не предоставляющие значения контроллеру

У меня есть следующая форма:

<% 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(...) в хэше, идентифицированном переданным именем (в данном случае "тег").

Другие вопросы по тегам