rails – hidden_​​field和hidden_​​field_tag究竟做了什么?

我阅读了hidden_fields定义,但我不确定它的真正含义。 我的理解是它允许您传递某些参数的属性。 例如,如果您具有丰富的连接模型,则可以使用hidden_field将user_id分配给用户的连接模型属性。 那是对的吗?

如果是这样,在表格或控制器中做它会更好吗?

这两种方法都是帮助者来创建“隐藏”类型的HTML输入标记,是的,这些标记用于向请求添加参数(通常是表单POST)。 实际上,参数可以是您要与请求一起发送的任何信息。 但要小心,因为隐藏的字段很容易被篡改。

这是一个在隐藏字段中发送用户ID的示例

 # Form <%= form_tag foo_path do %> <%= hidden_field_tag "user_id", @user.id %> .... <%= submit_tag "Click Me" %> <% end %> # Controller def foo # params[:user_id] is set with the value from the hidden field # Do useful stuff with the POST data end 

虽然你可以传递像user_id这样的东西,但我发现它很少需要它。 如果在给定情况下始终需要user_id,则可以考虑使用嵌套路由http://guides.rubyonrails.org/routing.html#nested-resources 。

它会生成一个隐藏类型的输入字段……

这是一种存储您希望随表单提交的信息的方法,而不必具有可见字段。

从文档 :

hidden_field_tag 'tags_list'生成…

hidden_field_tag意味着在没有模型的情况下使用,而hidden_field意味着与form_for调用和模型一起使用。

hidden_field(:signup, :pass_confirm)生成…