hidden_​​field_tag值不传递给右侧params散列

时间:2016-02-18 23:18:24

标签: ruby-on-rails ruby-on-rails-4 parameters

我希望key_type在表单提交中传递category_item_value参数哈希值,但它会在哈希值之外传递。

Parameters: {"utf8"=>"✓", "authenticity_token"=>"H0p7vNzcl0r0KNPWTHOGgaem0ngpsjIq5DmXZ8A7woZOztECkC9lv5cBH0CloH4ivEL0VtU5uDMPZTJQZQDjOQ==", "category_item_value"=>{"key"=>"this-Is-AttRibute-Page", "value"=>"okkkkkkkk"}, "key_type"=>"", "commit"=>"Submit",...

这是表格

 <%= form_for([@category_item, @category_item_value], url: create_category_item_value_path, method: :post) do |f|  %>
  <%= render 'shared/error_messages', object: f.object %>

   <%= f.label :attribute, "Pick a key to add an attribute to." %> 
   <%= f.select :key, options_for_select(@key_names) %>

   <%= hidden_field_tag :key_type, 2 %>

   <%= f.label :value %> 
   <%= f.text_field :value %>

   <%= f.submit "Submit" %>

 <% end %>

我需要隐藏字段在category_item_value哈希内部传递。为什么不发生?

另外我知道隐藏的字段是不安全的,用户可以轻松地更改其他表单上的key_type,所以如果他们尝试成为先生,这不是问题。 hackety hack并在此更改它。它只是为了方便而隐藏。

1 个答案:

答案 0 :(得分:1)

有2个问题。

  1. hidden_field_tag应该是f.hidden_field。这会将其添加到正确的哈希值,但会引发错误。
  2. 修复我用:key_type, 2
  3. 替换:key_type, :value => 2的错误