Rails 3 Ordering Bug Demo
This bug occurs when you have a "child" model (one that
belongs_to another model) with an
order scope on it and you try to set a
So for the following models:
class Person < ActiveRecord::Base has_many :items end class Item < ActiveRecord::Base belongs_to :person default_scope order(:ordinal) end
With the following calls:
Person.includes(:items).where(:name => 'John') # or Person.includes(:items).find_by_name 'John'
The items loaded are ordered by the
ordinal on each
If you introduce a period into the name, though (e.g. "John.Smith"), the order scope is ignored.
To see this in action...
$ git clone git://github.com/coreyward/bug-demo.git $ cd bug-demo $ rake db:create db:migrate db:seed $ rails s
And then fire up http://localhost:3000/ and see for yourself.