我通读了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/

10-15 10:22