(rails)隐藏的表单元素,不给控制器赋值

时间:2009-11-20 15:21:07

标签: ruby-on-rails controllers hidden-fields

我有以下表格:

<% 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 个答案:

答案 0 :(得分:1)

logger.debug params.inspect。我怀疑你会看到params[:tag][:xpos]:)

您已在其中传递了一个名称以形成标记(form_for(:tag, ...) do |form|),它将所有构造为form.field(...)的字段包装在由传递的名称(在本例中为“tag”)标识的哈希中。