如何在rails

时间:2015-07-12 10:52:38

标签: ruby-on-rails

我一直在努力关注Michael Hartl的教程。因此,我设置了一个数据库,如下所示:

enter image description here

我想只显示用户(例如userA)是否跟随另一个用户(例如userB)并且userB正在关注userA。

我试图在模型中定义它,然后从控制器动作执行ajax调用。

我尝试使用另一个question的答案。这就是我到目前为止所拥有的

user.rb

def reciprocal_followers
  self.followers & self.followed_users
end

users_controller.rb

def reciprocal_followers
  @reciprocal_followers =current_user.reciprocal_followers
end

index.html.erb

<% @reciprocal_followers %>

但我得不到任何回报

所以我将index.html.erb更改为

<%= current_user.reciprocal_followers %>

并且我得到了我期望的结果,但如果我只是想要我得到的对象的名称或名称“未定义”&#39;错误。

如何获得互惠粉丝列表

2 个答案:

答案 0 :(得分:3)

反复您对undefined method

的评论

当您使用&运算符时,它会对数组执行操作,这意味着它已经加载了数据库的内容。换句话说

self.followers & self.followed_users

相当于

self.followers.to_a & self.followed_users.to_a

并将返回一组追随者对象。

你实际上可以这样做来获取他们的ID:

<%= current_user.reciprocal_followers.map(&:id) %> 

它将返回reciprocal_follower ID

的数组

答案 1 :(得分:0)

请在index.html.erb中更改此行

<% @reciprocal_followers %>

到此

<%= @reciprocal_followers %>

让我知道会发生什么