ruby-on-rails - 访问 has_many 关系时指定订单和限制的快捷方式?

标签 ruby-on-rails activerecord

在 ActiveRecord 模型中访问 has_many 关系时,是否有给出限制和顺序的快捷方式?

例如,这里是我想表达的:

@user.posts(:limit => 5, :order => "title")

与更长的版本相反:
Post.find(:all, :limit => 5, :order => "title", :conditions => ['user_id = ?', @user.id])

我知道您可以直接在 has_many 关系中指定它,但是有没有一种方法可以即时完成,例如在一个页面上显示 10 个帖子,而在另一个页面上只显示 3 个?

最佳答案

我在博客模型中有类似的东西:

  has_many :posts, :class_name => "BlogPost", :foreign_key => "owner_id",
    :order => "items.published_at desc", :include => [:creator] do
      def recent(limit=3)
        find(:all, :limit => limit, :order => "items.published_at desc")
      end
  end

用法:
Blog.posts.recent

或者
Blog.posts.recent(5)

关于ruby-on-rails - 访问 has_many 关系时指定订单和限制的快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/326764/

相关文章:

ruby-on-rails - 如何处理 Ruby on Rails 错误 : "Please install the postgresql adapter: ` gem install activerecord-postgresql-adapter'"

ruby-on-rails - rails : ensure capitalization in model?

sql - ruby on rails 参数比较日期和日期时间?

ruby-on-rails - 如何在 Ruby on Rails 中验证 activeRecord 模型中的字段值?

ruby-on-rails - 约束中带括号的 ROR 路由

ruby-on-rails - 安装和使用 Redcarpet (rails)

ruby-on-rails - 没有这样的文件或目录服务器是否在本地运行并接受 Unix 域套接字 "/tmp/.s.PGSQL.5432"上的连接?

ruby-on-rails - Rails 在参数中为 M 到 M 关联形成传递数组

ruby-on-rails - 从 belongs_to 关联访问海量信息

ruby - 我如何按日期对约会列表进行分组?