0

「フォロー/フォロー解除」機能を含むアプリケーションに取り組んでいます。UsersフォローすることができObjectsObjects多くの人をフォローすることができUsersます。これは、モデル/コントローラーhas_many :throughを介した関係です。Relationships

object#showビューに次のスニペットがあります。

<% if current_user.following?(@object) %>
  <%= render 'unfollow' %>
<% else %>
  <%= render 'follow' %>
<% end %>

リクエスト仕様でさまざまな機能をテストするundefined method 'following?' for nil:NilClassと、すべての仕様が表示され、失敗しますobject#show

following?メソッドはモデルにあり、次のUserようになります。

def following?(object)
  relationships.find_by_object_id(object.id)
end

メソッドfollowing?Userモデルに含まれています(フォローとフォロー解除を行うのはメソッドだけであるため)。Rubyのオブジェクト間でメソッドを使用できると思いましたが、おそらくそうではありません。そうでない場合、そのメソッドを使用できるようにこれをリファクタリングするにはどうすればよいですか?

助けてくれてありがとう!

4

1 に答える 1

0

current_userスペックにはヘルパーはありません。それがあなたが得る理由ですnilcurrent_userテストユーザーを変数に刺す必要があります

于 2012-07-15T18:39:30.117 に答える