2010-10-22 45 views
5

我們已經在項目的開始階段創建了一個用戶模型,但現在(稍後幾次遷移)我們想使用設計寶石。如果用戶模型和表已經存在,是否可以添加設計?也就是說,是否有可能改變已經完成的工作,或者我們是否必須重新開始?如果用戶模型已經存在,是否可以添加設計?

回答

0

我已經完成了。它有點痛苦,但設計是值得的。製作一個虛擬應用程序並進行遷移。然後看看schema.rb並編寫一些與現有用戶模型相同的遷移。

或者,您可以通過源代碼讀取並找出諸如「database_authenticateable」之類的東西的定義。你應該開始here

4

Cavert編碼器,但是:

(注意,這 不遷移:當我寫這 現在,這包括因爲我不關心它「上鎖」:可鎖定,因爲MattSlay照顧比我多做:)。另外,您需要將用戶密碼遷移到加密密碼字段。最後,它可能不適合你。對不起)

class AddDevise < ActiveRecord::Migration 
    def self.up 
    null = false 
    default = "" 

    add_column :users, :encrypted_password, :string, :null => null, :default => default, :limit => 128 
    add_column :users, :password_salt, :string 
    add_column :users, :authentication_token, :string 
    add_column :users, :confirmation_token, :string 
    add_column :users, :confirmed_at,   :datetime 
    add_column :users, :confirmation_sent_at, :datetime 
    add_column :users, :reset_password_token, :string 
    add_column :users, :remember_token,  :string 
    add_column :users, :remember_created_at, :datetime 
    add_column :users, :sign_in_count,  :integer, :default => 0 
    add_column :users, :current_sign_in_at, :datetime 
    add_column :users, :last_sign_in_at, :datetime 
    add_column :users, :current_sign_in_ip, :string 
    add_column :users, :last_sign_in_ip, :string 

    #:lockable fields contributed by MattSlay 
    add_column :users, :failed_attempts, :integer, :default => 0 
    add_column :users, :unlock_token, :string 
    add_column :users, :locked_at, :datetime 

    end 

    def self.down 
    remove_column :users, :encrypted_password 
    remove_column :users, :password_salt 
    remove_column :users, :authentication_token 
    remove_column :users, :confirmation_token 
    remove_column :users, :confirmed_at 
    remove_column :users, :confirmation_sent_at 
    remove_column :users, :reset_password_token 
    remove_column :users, :remember_token 
    remove_column :users, :remember_created_at 
    remove_column :users, :sign_in_count 
    remove_column :users, :current_sign_in_at 
    remove_column :users, :last_sign_in_at 
    remove_column :users, :current_sign_in_ip 
    remove_column :users, :last_sign_in_ip 
    remove_column :users, :failed_attempts 
    remove_column :users, :unlock_token 
    remove_column :users, :locked_at 
    end 
end 
+0

:在用戶模式鎖定的選項爲我工作!現在,這部分是關於什麼:可鎖定的?我看着Devise User遷移,我只能看到你列出的字段。我可以在哪裏瞭解更多關於這件事的信息:可鎖定的東西我想實現完整的設計用戶模式。 – MattSlay 2010-11-04 04:27:22

+0

啊,我想我找到了必需的:可鎖定的字段。我將它們發佈在下面的單獨答案中。 – MattSlay 2010-11-04 04:59:51

+0

啊,很酷。我已經將它與上面的一個大模式文件集成在一起。謝謝。 – Aquarion 2010-11-04 09:49:48

3

除此之外Aquarion提供的名單,我想我已經找到你所需要的三個字段,如果你希望實現的:

add_column :users, :failed_attempts, :integer, :default => 0 
add_column :users, :unlock_token, :string 
add_column :users, :locked_at, :datetime 
相關問題