我正在开发一个涉及“关注/取消关注”功能的应用程序。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 中的对象之间使用方法,但也许不能。如果没有,我将如何重构它以便能够使用该方法?
提前感谢您的帮助!