I have a question about peoples opinions about how nested named_scopes should handle :order options.
What are your opinions about the correct behavior for the following chained named_scopes?
Take the model:
class Developer < ActiveRecord::Base named_scope :by_last_name, :order => 'last_name' named_scope :by_first_name, :order => 'first_name' end
In which order should the following calls return the models?
1) Developer.by_last_name 2) Developer.by_last_name.by_first_name
In case 2) I think that the order should be "last_name, "first_name". This is not the current edge Rails behavior.
Now change the model to:
class Developer < ActiveRecord::Base default_scope :order => 'salary DESC' named_scope :by_last_name, :order => 'last_name' named_scope :by_first_name, :order => 'first_name' end
In which order should the following calls return the models?
1) Developer.find(:all) 2) Developer.by_last_name 3) Developer.by_last_name.by_first_name
In case 2) I think that the order should be "last_name". This is the current edge Rails behavior. In case 3) I think the order should be "last_name, first_name".
Does this match peoples expectations and usage of named_scope and default_scope? If so, I can submit a patch to allow :order options to be merged.