我需要获取当前用户的所有好友状态,然后按创建时间排序。
class User < ActiveRecord::Base
has_many :statuses
end
class Status < ActiveRecord::Base
belongs_to :user
end
在控制器中:
def index
@statuses = []
current_user.friends.map{ |friend| friend.statuses.each { |status| @statuses << status } }
current_user.statuses.each { |status| @statuses << status }
@statuses.sort! { |a,b| b.created_at <=> a.created_at }
end
current_user.friends
会返回一个由User
对象构成的数组。
friend.statuses
会返回一个由Status
对象构成的数组。
Error:
comparison of Status with Status failed
app/controllers/welcome_controller.rb:10:in `sort!'
app/controllers/welcome_controller.rb:10:in `index'
Status.where(user_id: current_user.friends.map(&:id).insert(0, current_user.id)).all
你觉得呢? - Alex