小编st3*_*fan的帖子

从rails 3升级到rails 4时,has_many关联的顺序错误

我正在尝试将一个项目从Rails 3更新到Rails 4.在Rails 3中我做了:

class Sale < ActiveRecord::Base
  has_many :windows, :dependent => :destroy
  has_many :tint_codes, :through => :windows, :uniq => true, :order => 'code ASC'
  has_many :tint_types, :through => :tint_codes, :uniq => true, :order => 'value ASC'
end
Run Code Online (Sandbox Code Playgroud)

当我调用sale.tint_types时,它在Rails 3中执行以下查询:

SELECT DISTINCT "tint_types".* FROM "tint_types" INNER JOIN "tint_codes" ON "tint_types"."id" = "tint_codes"."tint_type_id" INNER JOIN "windows" ON "tint_codes"."id" = "windows"."tint_code_id" WHERE "windows"."sale_id" = 2 ORDER BY value ASC
Run Code Online (Sandbox Code Playgroud)

我为Rails 4更新了这样的:

class Sale < ActiveRecord::Base
  has_many :windows, :dependent => :destroy
  has_many :tint_codes, …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql sql-order-by has-many-through ruby-on-rails-4

5
推荐指数
1
解决办法
1869
查看次数