4

有没有办法检测表单是否提交?我试图根据自定义验证设置一个类,如下例所示,这可能吗?

  .control-group{ :class => ("error" if form_is_submitted ) }

现在尝试:

  .control-group{ :class => ("error" if params[:user][:profile_attributes][:gender] == nil) }

如果未提交表单,则会失败,因为参数为 nill 并引发错误

4

1 回答 1

17

如果您的表单数据是通过具有(都具有前缀)name等属性的字段提交的,您可以检查是否存在于.user[profile_attributes][gender] user:userparams

... if params.include?(:user)

如果出于某种原因(例如来自路由) params[:user]即使对于请求也已经有了值GET,您可以查找具有值的特定表单字段。例如,您可以添加一个隐藏字段

<%= f.hidden_field :some_field, :value => true %>

并在您的情况下检查

... if params[:user].include?(:some_field)

您也可以检查请求是否通过该POST方法

... if request.post?

这也适用于其他方法,例如request.put?更新方法。

于 2012-08-24T00:10:11.990 回答