加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在一个查询中按不同属性排序两个模型

发布时间:2020-12-17 02:54:29 所属栏目:百科 来源:网络整理
导读:class Comment ActiveRecord::Base # updated_at :datetime belongs_to :userendclass Post ActiveRecord::Base # last_edit_at :datetime belongs_to :userend 我想根据她的评论updated_at属性和帖子last_edit_at属性分别查询某个用户并按时间顺序显示她的
class Comment < ActiveRecord::Base
  #  updated_at :datetime
  belongs_to :user
end

class Post < ActiveRecord::Base
  #  last_edit_at :datetime
  belongs_to :user
end

我想根据她的评论updated_at属性和帖子last_edit_at属性分别查询某个用户并按时间顺序显示她的评论和帖子.

我从类似的问题尝试过an answer,但属性是相同的:

combined_sorted = (User.comments + User.likes).sort{|a,b| a.created_at <=> b.created_at }

我怎样才能完成上述但具有独特属性?

解决方法

你可以创建一些别名属性……

class Comment < ActiveRecord::Base
  #  updated_at :datetime
  alias_attribute :sort_date,:updated_at
  belongs_to :user
end

class Post < ActiveRecord::Base
  #  last_edit_at :datetime
  alias_attribute :sort_date,:last_edit_at
  belongs_to :user
end

user = User.first # replace with method to retrieve desired user
combined_sorted = (user.comments + user.likes).sort{|a,b| a.sort_date <=> b.sort_date }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读