我是这个Rails世界的新手。我无法理解这个问题。如何在创建微博的日期之前订购@microposts。
这是
行 @microposts = current_user.followeds.map(&:microposts).flatten
我只是设法按日期命令'跟随',但这不是我想要的。我所做的所有尝试都给了我错误,所以我想我不知道一些语法。
欢迎任何帮助!
答案 0 :(得分:2)
通常,您可以添加order
子句,如:
Micropost.where(:written_by => current_user.followeds).order(:created_at)
您目前拥有此系列结构的方式不允许这样做,因为order
仅适用于ActiveRecord :: Relations,而一旦执行map
,您就不再拥有关系连锁。
如果是这种情况,你会想要这样的东西:
current_user.followeds.map(&:microposts).flatten.sort_by { |m| m.created_at }
答案 1 :(得分:0)
我认为你应该尝试从另一个角度来解决这个问题。
这样的事情怎么样:
@microposts = Micropost.where(author_id: current_user.followed_ids).order(:created_at).all
当然,您可能必须交换author_id
以获取您所拥有的Micropost
用户所用的任何外键。
如果您想要撤消帖子(最新的帖子),您只需改为编写order("created_at desc")
。