require "active_record"
ActiveRecord::VERSION::STRING # => "4.0.1"
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
class User < ActiveRecord::Base
has_many :items
end
class Item < ActiveRecord::Base
end
User.joins(:items).merge(Item.order(:x)).to_sql[/BY.*/] # => "BY \"items\".\"x\" ASC"
User.joins(:items).merge(Item.order(:x => :asc)).to_sql[/BY.*/] # => "BY \"users\".\"x\" ASC"
User.joins(:items).merge(Item.order(Item.arel_table[:x].asc)).to_sql[/BY.*/] # => "BY \"items\".\"x\" ASC"
2つめの書き方だと items.x のはずが users.x になります。
かなりはまりました。
masterブランチだと直ってました。