我正在研究涉及“关注/取消关注”功能的应用程序。 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中的对象之间使用方法,但也许不会。如果不是,我将如何去重构这个以便能够使用该方法?
在此先感谢您的帮助!
这也是在用户模型中的公共方法,而不是私有方法。 – Justin 2012-07-15 18:36:21