检测是否在轨道上提交了带有红宝石的表单?

时间:2012-08-23 21:32:37

标签: ruby-on-rails-3 forms submit

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

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

现在尝试:

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

如果表单未提交,则会失败,因为params是nill并抛出错误

1 个答案:

答案 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?