模型方法在另一个视图中不起作用

时间:2012-07-15 18:35:05

标签: ruby-on-rails ruby-on-rails-3

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

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

规格中没有current_user帮助器。这就是你得到nil的原因。 您应该将测试用户刺入current_user变量