【问题标题】:hidden_field_tag value doesn't pass to the right params hashhidden_​​field_tag 值不会传递给正确的参数哈希
【发布时间】:2016-05-31 09:11:54
【问题描述】:

我希望 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,所以如果他们尝试成为先生也不是问题。 hacky hack 并在这个上进行更改。它只是为了方便而隐藏。

【问题讨论】:

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


    【解决方案1】:

    有 2 个问题。

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

    【讨论】:

    • 超级。我打算为您检查文档,但正在前往我的计算机的途中。很高兴你得到它。
    • 是的,您的回答证实了我对“f”的怀疑是正确的,所以我用谷歌搜索了错误并从那里弄清楚了。谢谢
    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多