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)
生成…