2012-08-23 65 views
4

有沒有辦法檢測表單是否被提交?我試圖設置一個基於自定義驗證的類,如下面的例子,這可能嗎?檢測表單是否在rails上使用ruby提交?

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

現在嘗試:

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

這失敗如果表單沒有提交,因爲那時的PARAMS是nill並拋出一個錯誤

回答

15

如果你的表單數據是通過域與name屬性提交如user[profile_attributes][gender](全部具有user前綴),您可以檢查: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? 

這適用於其他方法a很好,像request.put?更新方法。

+0

唉很好我真的被困在這一塊,檢查頁面是否張貼工程太棒了!多謝 – Rubytastic