[英]Validation issues in Rails
我正在使用Rails 3.2.16,devise和mongoid(可能與此問題相關的Gems)。
用戶注冊后,我已經設計了重定向他們的方式,以創建一個新的配置文件,該配置文件名為belongs_to :user
。 我正在使用以下設計替代來執行此操作:
def after_sign_up_path_for(resource)
new_profile_path
end
在個人資料上,我在各個地方調用驗證,例如validates :biz_name, :on => :update, :presence => {:message => 'Business name cannot be blank'}
。
在用戶注冊后加載new_profile_path
時,他們會立即在我稱為“驗證”的字段上收到驗證錯誤。 起初我很困惑,因為按照上面的代碼,我僅在update
調用驗證。 因此,為什么運行驗證沒有意義。
無論如何,我找到了我的錯誤。 我的個人資料模型中有一些字段具有默認值,例如field :position_order, :type => Integer, :default => 1
。 似乎首先使用這些默認值創建了配置文件,然后顯示給用戶進行編輯時,實際上是調用了update
方法-因此,調用了驗證錯誤。
我該如何解決? 歸根結底,我想要兩件事:
-在用戶能夠編輯其個人資料之前,使用一些默認值填充個人資料
-在配置文件編輯頁面的第一個視圖上,不應運行驗證(因此,用戶甚至沒有做任何事情都不會看到一堆錯誤)。
嗯,我想你應該重新考慮一下要求。 哪些用途的默認值無效?
您還可以提供前端行為,以指導用戶更正HTML或Javascript的輸入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.