Ruby on Rails 3如何实现关联模型排序和分页记录查询?

2026-04-11 17:222阅读0评论SEO基础
  • 内容介绍
  • 相关推荐

本文共计258个文字,预计阅读时间需要2分钟。

Ruby on Rails 3如何实现关联模型排序和分页记录查询?

我这里有两个模型关联:`Order` 和 `Customer`。

rubyclass Order

class Customer

问题是我正在显示的列中。

我这里有两个模型关联:

class Order < ActiveRecord::Base belongs_to :customer ... end class Customer < ActiveRecord::Base has_many :orders end

客户可以拥有多个订单,订单可以属于一个客户.问题是我正在显示列出的表格,其中显示以下字段值

ORDER ID| CUSTOMER NAME |...

客户名称是指客户[:name] – 我发现您可以使用find方法进行排序并传入连接,如下所示:

Ruby on Rails 3如何实现关联模型排序和分页记录查询?

Order.find(:all, :joins => :customer, :order => 'customer.name asc')

但是我需要在这里对结果进行分页,似乎我不能做这样的事情 – 我在这里使用Kaminari宝石进行分页:

Order.find(:all, :joins => :customer, :order => 'customer.name asc').page(5) # doesn't work throws an error nomethoderror on page

有任何想法吗?

您应该使用“新”Rails 3查询界面:

Order.joins(:customer).order("customers.name asc").page(5)

本文共计258个文字,预计阅读时间需要2分钟。

Ruby on Rails 3如何实现关联模型排序和分页记录查询?

我这里有两个模型关联:`Order` 和 `Customer`。

rubyclass Order

class Customer

问题是我正在显示的列中。

我这里有两个模型关联:

class Order < ActiveRecord::Base belongs_to :customer ... end class Customer < ActiveRecord::Base has_many :orders end

客户可以拥有多个订单,订单可以属于一个客户.问题是我正在显示列出的表格,其中显示以下字段值

ORDER ID| CUSTOMER NAME |...

客户名称是指客户[:name] – 我发现您可以使用find方法进行排序并传入连接,如下所示:

Ruby on Rails 3如何实现关联模型排序和分页记录查询?

Order.find(:all, :joins => :customer, :order => 'customer.name asc')

但是我需要在这里对结果进行分页,似乎我不能做这样的事情 – 我在这里使用Kaminari宝石进行分页:

Order.find(:all, :joins => :customer, :order => 'customer.name asc').page(5) # doesn't work throws an error nomethoderror on page

有任何想法吗?

您应该使用“新”Rails 3查询界面:

Order.joins(:customer).order("customers.name asc").page(5)