簡體   English   中英

在記錄更新期間如何從驗證中排除密碼字段? (Rails 3.0.4,Ruby 1.9.2)

[英]How do I exclude password fields from validation during record update? (Rails 3.0.4, Ruby 1.9.2)

我有一個允許更新用戶記錄的表單。 它包含以下字段:password和:password_confirmation但如果加密密碼已存儲在數據庫中,我希望在它們上運行驗證。

視圖文件中的字段:

<%= f.password_field :password %>
<%= f.password_field :password_confirmation, :label => 'Confirm Password' %>

在搜索互聯網時,我發現了一些代碼,我假設它是以前版本的Ruby / Rails。 (我將把它放在我的用戶模型中。)

validates_presence_of :password, :on => create

由於我的用戶模型中的密碼驗證語法不同(下面),我對我需要的語法感到困惑。

validates :password, :presence => true, :confirmation => true

我搜索了其他帖子,肯定可以使用一些方向。

- 免責聲明 - 我確實看到有關於條件驗證的屏幕投射,但我現在無法觀看。

謝謝,所有。

編輯 - 插入以下代碼,它允許用戶記錄更新,而不會抱怨缺少密碼字段。

validates :password, :presence => true, :confirmation => true, :on => :create

我建議你做以下事情:

validates :password,
  :presence => true,
  :confirmation => true,
  :if => lambda{ new_record? || !password.nil? }

這基本上表示需要在創建時使用password_confirmation確認密碼,並且當密碼不為零時也需要確認密碼 - 例如,當用戶更新密碼時。

validates :password, :presence => true, :confirmation => true, :on => :create

閱讀更多關於Railsguides的信息: http ://edgeguides.rubyonrails.org/active_record_validations_callbacks.html#on

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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