![](/img/trans.png)
[英]How do I upgrade from Ruby 1.8.7 to Ruby 1.9.2 for Rails 2.3.8 app?
[英]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.