我正在使用名为acts_as_follower
(https://github.com/tcocca/acts_as_follower)
在这里,我正在尝试获取所有关注current_user的用户。
然后我希望它们按名为last_active_at
所以我尝试像这样编码,但它返回错误。 我该如何解决?
控制器
@followed_users = current_user.followers.order('users.last_active_at DESC').limit(10)
错误消息
NoMethodError (undefined method `order' for #<Array:0x0000000ab3cf18>):
答案 0 :(得分:2)
followers
方法返回Array
并且Array
在ruby中没有任何order
方法
请看 来自github: -
“book.followers#返回该书的所有粉丝的数组,不同对象类型的集合(例如,键入User或type Book)”
答案 1 :(得分:1)
数组没有任何order
方法。你可以做这样的事情
@followed_users = current_user.followers.sort_by{ |n| n.last_active_at }
然后在视图中显示时,您可以将其限制为您想要的数量或从控制器执行此操作(建议的方式)。
答案 2 :(得分:1)
所以你可以试试这个
ASC:
current_user.followers.sort!{ |a,b| a.created_at <=> b.created_at }.take(10)
DESC:
current_user.followers.sort!{ |a,b| b.created_at <=> a.created_at }.take(10)
答案 3 :(得分:0)
根据readme@github关注者获取ActiveRecord选项的可选哈希参数(:limit,:order等等)
所以这应该有效:
@followed_users = current_user.followers(:order => 'users.last_active_at DESC', :limit => 10)