有没有办法检测表单是否提交?我试图根据自定义验证设置一个类,如下例所示,这可能吗?
.control-group{ :class => ("error" if form_is_submitted ) }
现在尝试:
.control-group{ :class => ("error" if params[:user][:profile_attributes][:gender] == nil) }
如果未提交表单,则此操作将失败,因为参数为 nill 并引发错误
最佳答案
如果您的表单数据是通过带有 name
的字段提交的属性如 user[profile_attributes][gender]
(都有 user
前缀),您可以检查 :user
存在于 params
.
... if params.include?(:user)
如果出于某种原因(例如来自路线)
params[:user]
即使对于 GET
也已经有了值(value)请求,您可以查找具有值的特定表单字段。例如,您可以添加一个隐藏字段<%= f.hidden_field :some_field, :value => true %>
并检查 它在你的情况下
... if params[:user].include?(:some_field)
您也可以检查请求是否通过
POST
方法... if request.post?
这也适用于其他方法,例如
request.put?
对于更新方法。
关于ruby-on-rails-3 - 检测表单是否使用 ruby on rails 提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100295/