我通读了hidden_fields
的技巧性定义,但不确定其真正作用是什么。我的理解是,它允许您传递某些参数的属性。例如,如果您拥有丰富的联接模型,则可以使用hidden_field
将user_id分配给用户的联接模型属性。那是对的吗?
如果是这样,最好以表格或 Controller 的形式进行吗?
最佳答案
这两种方法都是创建“hidden”类型的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。
关于ruby-on-rails - rails-hidden_field和hidden_field_tag的作用是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7733085/