ruby-on-rails – rails:使用以下命令对has_many进行排序:由于
发布时间:2020-12-17 02:33:18 所属栏目:百科 来源:网络整理
导读:我有一个铁轨模型 用户与Post有很多关系. Post包含一个名为position的属性,用于存储位置(acts_as_list gem).该位置将位置存储在用户帖子列表上(该顺序不是由于帖子的创建/修改). 此外,Post存储了时间戳(t.timestamps在迁移中) 所以我在User.rb中定义了以下内
我有一个铁轨模型
用户与Post有很多关系. Post包含一个名为position的属性,用于存储位置(acts_as_list gem).该位置将位置存储在用户帖子列表上(该顺序不是由于帖子的创建/修改). 此外,Post存储了时间戳(t.timestamps在迁移中) 所以我在User.rb中定义了以下内容: has_many :post,:order => "position",:dependent => :destroy 但是,当我执行User.first.posts时,帖子不按位置排序. ORDER BY post.created_at DESC,position 所以created_at仍在使用中. 如何按位置排序而不使用created_at属性? 提前致谢! 解 问题解决了 解决方法
您可以使用
default scope:
class Post < ActiveRecord::Base scope :by_position,order("position ASC") default_scope by_position #... end 然后@ user.posts应返回按位置(ASC)排序的列表. 此外,以下应该适合您:(复数邮寄) has_many :posts,:dependent => :destroy,:order => "posts.position ASC" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |