2012-02-20 64 views
1

我是一個rails新手。我第一次使用Devise時遇到了一些奇怪的事情。你能不能讓我知道這是否是一個設計錯誤或我的問題?問題與設計電子郵件確認

我使用的設計2.0.1

新用戶註冊後,郵件被髮送到註冊的電子郵件地址。

案例1:

這部分是好的

通過電子郵件鏈接一旦確認,他是能夠訪問整個網站。

案例2:

這部分也不行

後,我報名,我馬上不點擊確認鏈接,我去頁籤,並嘗試以登錄剛創建的電子郵件帳戶和密碼,它顯示任何錯誤,它只是路由到sign_in網頁..理想我想它顯示錯誤類似

"We have sent you an email. Please confirm. 
If you have not received them please ask for conformation instructions" 

案例3:

這部分也不行

後,我報名,我點擊忘記密碼LNK。我輸入了我剛註冊的電子郵件地址..它向我發送重置密碼說明。我不想重置密碼說明,而是希望向我發送一條錯誤消息,說"Email first has to been confirmed first in order to send reset password instructions."

期待您的幫助和支持。

感謝

回答

2

如果我需要讓人們瞭解確認,我通常在我的控制器之一進行設置:

render :template => 'shared/unconfirmed' and return if current_user.confirmed? == false 

這將阻止人們做任何事情,除非他們已經證實,並限制要求決定我放在哪裏。例如,如果你想阻止人們做所有事情,直到他們確認了,把它放在application_controller的before_filter中。如果您希望他們停止創建帖子,請將其置於帖子控制器中。

對於這個工作,你真的還應該改變「config.confirm_within」在devise.rb配置文件設置爲讓人們在默認值:

# ==> Configuration for :confirmable 
# A period that the user is allowed to access the website even without 
# confirming his account. For instance, if set to 2.days, the user will be 
# able to access the website for two days without confirming his account, 
# access will be blocked just in the third day. Default is 0.days, meaning 
# the user cannot access the website without confirming his account. 
# config.confirm_within = 2.days 
+0

我試着這樣做..但我得到一個錯誤!另外,我不想讓用戶每天2次訪問。我更加關注Devise Bug ..上面提到的Case 3&Case 2 .. – gkolan 2012-02-21 00:59:16