2

ユーザーのログインが必要なテストがいくつかあります。コントローラーテストを単独で実行すると、合格し、すべてが緑色になります。rspec spec/controllersテストの一部を実行すると、次のようなエラーで失敗します。

Failure/Error: get :my_modal, :format => :js
 NoMethodError:
   undefined method `authenticate!' for nil:NilClass

これを修正するためのヒントはありますか?

4

1 に答える 1

0

このようなエラーが発生したことがあります。したがって、私が私の話をするときに、あなたは私たちとそれ以上の詳細を共有しません、そしてうまくいけば、あなたは後であなたの誤りをより簡単に見つけることができます。

私のアプリでは、2つのクラスがログインできます。「ユーザー」と「トピック」。認証を試みたので、ユーザーはユーザー関連のサイトにしかアクセスできず、トピックはアプリのトピック関連の部分にしかアクセスできませんでした。

私が最初に受けたエラーの1つは、あなたのエラーでした。しかし、私はそれを修正し、私がどのようにしたかをあなたに説明しようとします。ユーザーがサインインしている場合、私のアプリはトピックに関連する認証方法を知りませんでした。逆に、トピックが私のアプリでサインインされた場合、ユーザー関連の認証方法を知りませんでした(User.user_idまたはTopic.be_topic?がtrueであることを求めていました)

この問題を修正する手がかりは次のとおりです。「user_signed_in」というメソッドを作成し、IFメソッドに対して認証を実行しました。

IF user_signed_in
  user.user_id > 0
ELSE
  topic.be_topic == true
END

それがあなたを助けることを願っています。Railsは初めてです。深い知識が不足していることをご容赦ください。

于 2013-02-24T02:14:58.140 に答える