有没有办法检测表单是否已提交?我试图基于自定义验证设置类,如下例所示,这可能吗?
.control-group{ :class => ("error" if form_is_submitted ) }
现在尝试:
.control-group{ :class => ("error" if params[:user][:profile_attributes][:gender] == nil) }
如果表单未提交,则会失败,因为params是nill并抛出错误
答案 0 :(得分:16)
如果您的表单数据是通过name
属性user[profile_attributes][gender]
(都具有user
前缀)的字段提交的,则可以检查{{ 1}}存在于:user
。
params
如果由于某种原因(如来自路线) ... if params.include?(:user)
已经有了params[:user]
次请求的值,您可以查找特定的表单字段有价值。例如,您可以添加隐藏字段
GET
并在您的情况中检查它
<%= f.hidden_field :some_field, :value => true %>
您也可以通过... if params[:user].include?(:some_field)
方法
POST
这也适用于其他方法,例如更新方法的... if request.post?
。