「フォロー/フォロー解除」機能を含むアプリケーションに取り組んでいます。Users
フォローすることができObjects
、Objects
多くの人をフォローすることができ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のオブジェクト間でメソッドを使用できると思いましたが、おそらくそうではありません。そうでない場合、そのメソッドを使用できるようにこれをリファクタリングするにはどうすればよいですか?
助けてくれてありがとう!