2012-06-24 87 views
0

我有一個'設置'頁面,用戶可以在其中更新他們的信息及其密碼。與名稱和電子郵件字段具有相同表單上的密碼和password_confirmation字段。這樣做的正確方法是什麼?如果我只是將密碼字段放在同一個表單上,並且用戶不嘗試更改它,它會給我一個密碼,不能是空白驗證錯誤。有沒有這樣做的「適當」方式?如何根據表單輸入有條件地更新模型

編輯:我使用的方式設計

編輯:這是我的用戶模型代碼:

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :name, :email, :password, :password_confirmation, :remember_me, :reset_password_token 

    has_one :lineup 

回答

0

你可以嘗試這樣的:

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

,這樣當用戶正在更新他們的數據,密碼將是可選的。

+0

這會發生在用戶模型上嗎?我試過這樣做,它仍然說'密碼不能爲空' –

+0

是的,這將在用戶模型中進行(假設這是您存儲密碼數據的位置)。你能否包括你的模型代碼,尤其是驗證,在這裏?順便說一句,我從來沒有使用設計,所以不知道可能會有什麼樣的影響。 – KenB

+0

這沒有奏效 –

相關問題