2011-08-12 8 views
0

私は「Railsの3.0.4にルビーを使用してM /考案1.4.2/MySQLの/ Apacheの問題がユーザーに発生/助手席/ FreeBSDのNoMethodError(未定義のメソッド 'アクティブ?' <User:...>用)

は、電子メールで申し込みます確認ページ同時に、確認メールが新しいユーザーに送信されると、あなたは確認リンク、仕事の罰金で確認し、ユーザー記号をクリックした場合

モデル/ user.rb:。。

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

何ができますか?どんなアイディアも歓迎します。

答えて

0

答えはactive?で、1.4より小さいDeviseバージョン、1.3より新しいバージョンでのみ動作します。confirmed?を使用します。

Devise 1.1.7でDeviseスクリプトを生成した後、1.4.2にアップグレードしました。問題が発生しました。私は1.3.0にダウングレードし、それが治療法でした。

0

私はDeviseを使用したことはありませんが、ユーザーテーブルにブール値「アクティブ」属性があるとDeviseが考えているようです。それがあった場合、Railsはactive?メソッドを生成します。

+0

私はすでにそれをチェックしています...いいえ、問題はフィールドに関するものではないようです。 dev envにはこのようなフィールドはなく、うまく動作します。 –

1

私が知っている限り、デビスはactive?メソッドと一緒に出荷されません。 Confirmableモジュールが含まれている限り、confirmed?を代わりに使用してください。

+0

私は自動生成されたスクリプトを変更したことがないので、それをチェックしてみましょう... –

+0

'アクティブ? 'を' confirmable?'に変更しましたが、今度はエラーをスローしません。あなたはログインする必要があります。これは、要求されたページ(電子メールの確認テキストページ)に承認が必要であることを意味します。 –

+0

'confirm?'で 'confirmable?'に変更する必要があります。そして、ここにヒントがあります:私が正しくリコールすれば、ユーザを確認するためのメソッドは 'confirm! 'です(確かめるためにドキュメントをチェックしてください)。したがって、ブラウザウィンドウでユーザーとしてクリックをしながら、コンソールでユーザーと遊ぶことができます。 – socjopata

関連する問題