我正在开发一个涉及“跟随/取消关注”功能的应用程序。 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
位于{{1}}模型中(因为他们是唯一关注和取消关注的人)。我以为你可以在Ruby中使用对象之间的方法,但也许不是。如果没有,我将如何重构这个以便能够使用该方法?
提前感谢您的帮助!
答案 0 :(得分:0)
规格中没有current_user
帮助器。这就是你得到nil
的原因。
您应该将测试用户刺入current_user
变量