0

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

提前感谢您的帮助!

4

1 回答 1

0

规格中没有current_user助手。这就是为什么你得到nil. 您应该将测试用户刺入current_user变量

于 2012-07-15T18:39:30.117 回答