如何使用Rails 3实现基于关联的排序与分页记录查询?
- 内容介绍
- 相关推荐
本文共计292个文字,预计阅读时间需要2分钟。
在这个例子中,你展示了两个模型之间的关系。以下是简化后的内容,不超过100字:
ruby类 Order ActiveRecord: Base belongs_to :customerend
类 Customer ActiveRecord: Base has_many :ordersend
问题:如何显示客户的所有订单?
class Order < ActiveRecord::Base belongs_to :customer ... end class Customer < ActiveRecord::Base has_many :orders end
客户可以拥有多个订单,订单可以属于一个客户.问题是我正在显示列出的表格,其中显示以下字段值
ORDER ID| CUSTOMER NAME |...
客户名称是指客户[:name] – 我发现您可以使用find方法进行排序并传入连接,如下所示:
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)
本文共计292个文字,预计阅读时间需要2分钟。
在这个例子中,你展示了两个模型之间的关系。以下是简化后的内容,不超过100字:
ruby类 Order ActiveRecord: Base belongs_to :customerend
类 Customer ActiveRecord: Base has_many :ordersend
问题:如何显示客户的所有订单?
class Order < ActiveRecord::Base belongs_to :customer ... end class Customer < ActiveRecord::Base has_many :orders end
客户可以拥有多个订单,订单可以属于一个客户.问题是我正在显示列出的表格,其中显示以下字段值
ORDER ID| CUSTOMER NAME |...
客户名称是指客户[:name] – 我发现您可以使用find方法进行排序并传入连接,如下所示:
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)

