5
我在我的項目中有一個用戶和一個管理員角色。我用Devise創建了我的身份驗證。設計註冊確認
在我的管理員角色中,我沒有任何確認。在我的用戶模式,我有以下幾點:
devise :database_authenticatable, :confirmable, :recoverable,
:rememberable, :trackable, :validatable, :timeoutable, :registerable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :username, :prename, :surname, :phone, :street, :number, :location,
:password, :password_confirmation
我的遷移是這樣的:
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.database_authenticatable :null => false
t.confirmable
t.recoverable
t.rememberable
t.trackable
t.timeoutable
t.validateable
t.string :username
t.string :prename
t.string :surname
t.string :phone
t.string :street
t.integer :number
t.string :location
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :confirmation_token, :unique => true
add_index :users, :reset_password_token, :unique => true
add_index :users, :username, :unique => true
add_index :users, :prename, :unique => false
add_index :users, :surname, :unique => false
add_index :users, :phone, :unique => false
add_index :users, :street, :unique => false
add_index :users, :number, :unique => false
add_index :users, :location, :unique => false
end
def self.down
drop_table :users
end
end
在我的routes.rb我添加以下語句:
map.devise_for :admins
map.devise_for :users, :path_names => { :sign_up => "register", :sign_in => "login" }
map.root :controller => "main"
用戶註冊後,我重定向到控制器main
併發出通知「您已成功註冊」,並且我已登錄。但我不想登錄,因爲我沒有確認我的新用戶accou尚未。
如果我打開控制檯,我在日誌中看到確認郵件文本,但我已經登錄。我無法解釋原因。有人有想法嗎?
如果我複製出從日誌的確認標誌並且確認我的帳戶,我可以登錄,但如果我不確認,我也可以登錄。
就是這樣!謝謝。 guitsaru我有一個問題,也許你可以幫助我。 我想在功能測試中測試一些東西,因此,我必須登錄一個用戶。登錄助手很好,工作非常好,但我有確認問題。如果我做sign_in User.make(我與機械師開發),用戶將被製造,但不確認。如果我這樣做:sign_in User.make(:confirmed_at => Time.now,:confirmation_sent_at => Time.now,....)它不起作用。你知道我能做什麼嗎? – Mattherick 2010-05-04 20:04:52
嘗試使用確認! user = User.make user.confirm! – guitsaru 2010-05-05 00:03:30
謝謝你!就是這樣!把我從另一半的日子裏拯救出來:) – Mattherick 2010-05-05 15:50:01