簡體   English   中英

Rails中的驗證問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM