我正在尝试为user
创建一个表单。在该表单中,他们指定了他们想要加入的team
。每个team
都有一个与之关联的密码,以方便加入team
。我试图在表单中包含它,但自然它最终被包含在params[:user]
哈希中。这很烦人,因为我不需要这些信息来创建新的user
记录。有没有办法在字段中包含此密码以便在控制器中进行验证,但是没有将其包含在params[:user]
哈希中?如果没有,是否有一种干净的方法可以在创建user
期间从哈希中删除不需要的值?
答案 0 :(得分:1)
您可以执行此操作以从.nav li {
float: left;
}
team_password
params[:user]
如果您的控制器中已经定义了 def user_params
params[:user].except(:team_password)
end
,那么您可以使用现有的user_params
方法链接.except(:team_password)
:
user_params
答案 1 :(得分:1)
使用password_field_tag
而不是password_field
并将其放在表单中。
可以使用表单构建器
创建表单<%= form_for @user do %>
<%= password_field_tag :password %>
...
<% end %>
或使用简单的form_tag
。
<%= form_tag ... do %>
<%= password_field_tag :password %>
...
<% end %>
通过这种方式,即使您使用表单构建器,该字段也将作为顶级参数传递,并且不会嵌套在用户参数中。您可以使用params[:password]
获取它。
另一种选择是将其留在用户归属内并从Hash
中删除值,但我个人不喜欢尽可能修改输入参数。