snantz
1
I have a model for users and another model for linenumbers and I have
some code that looks like:
@user.linenumbers.each do |line|
end
and it loops through a user and their line numbers. What if I want to
order this list, is there a way to do that?
I know I could just put these linenumbers into an a find statement in my
controller and order it that way, but I would rather not do that way.
Thanks,
-S
snantz
2
On Jun 29, 5:31 pm, Shandy N. [email protected]
wrote:
I have a model for users and another model for linenumbers and I have
some code that looks like:
@user.linenumbers.each do |line|
end
and it loops through a user and their line numbers. What if I want to
order this list, is there a way to do that?
Well you can give an :order option to the association yourself.
Alternatively you could call sort or sort_by on your array
Fred
snantz
3
On Jun 29, 2009, at 5:31 PM, Shandy N. wrote:
I know I could just put these linenumbers into an a find statement
in my
controller and order it that way, but I would rather not do that way.
Thanks,
-S
Well, after first thinking “Why not?” I’ll offer this (it’s only Ruby):
@user.linenumbers.sort_by{|line| line.number}.each do |line|
#…
end
But I’ll still suggest:
class User
has_many :linenumbers, :order => ‘number’
end
Or perhaps a named scope is OK,
class Linenumber
named_scope :ordered, :order => ‘number’
end
@user.linenumbers.ordered.each do |line|
#…
end
-Rob
Rob B. http://agileconsultingllc.com
[email protected]
snantz
4
2009/6/29 Rob B. [email protected]:
order this list, is there a way to do that?
Or perhaps a named scope is OK,
class Linenumber
 named_scope :ordered, :order => ‘number’
end
Or
default_scope :order => ‘number’
if linenumbers are always to be sorted.
Coli9n
snantz
5
Perfect, exactly what I wanted, thank you both.
-S