2011-08-12 46 views
0

I「on Rails的3.0.4使用Ruby M /設計1.4.2/MySQL的/ Apache的用戶將出現問題/乘客/ FreeBSD的NoMethodError(爲<User:...>未定義的方法 '活性?')

在電子郵件註冊。確認頁面,同時,確認電子郵件發送給新用戶,如果你點擊確認鏈接,在做工精細的確認和用戶登錄

型號/ user.rb:

devise :database_authenticatable, :registerable, :trackable, :recoverable, :confirmable, :validatable, :lockable, :timeoutable 

可能是什麼?歡迎任何想法。

回答

0

答案是:active?方法只適用於Devise版本小於1.4,而對於版本小於1.3的版本應該使用confirmed?

我用Devise 1.1.7生成了Devise腳本,然後升級到1.4.2 - 並且出現了問題。我降級到1.3.0,這是治癒。

0

我從來沒有使用過Devise,但聽起來很可能Devise預計users表具有布爾「活動」屬性。如果有的話,Rails會生成active?方法。

+0

我已經檢查過......不,似乎這個問題不是關於該領域的。 dev env上沒有這樣的字段,它工作正常。 –

1

據我所知,設計時不包含active?方法。請嘗試使用confirmed?代替,只要您包含Confirmable模塊。

+0

我從來沒有更改過自動生成的腳本,讓我們來檢查一下... –

+0

我將'active?'改爲'confirmable?',現在應用程序不會拋出錯誤,但只是重定向回到登錄頁面,你必須登錄'這意味着所請求的頁面(電子郵件確認文本頁面)需要授權。 –

+0

您應該將其更改爲「已確認?」而不是「可確認?」。這裏有一個提示:如果我正確記得,用於確認用戶'確認!'的方法(檢查文檔是肯定的)。因此,您可以在控制檯中與用戶一起玩,同時在瀏覽器窗口中作爲用戶進行點擊。 – socjopata

相關問題