I have a model, Account, with many Courses. I want to display the course
codes for those courses as comma delimited text in an attribute of the
account. So I would have
Account << ActiveRecord::Base
has_many :courses
def get_course_codes_as_text
courses.each {|course| something something but I don’t know what
end
Now I could do it the hard way by setting up a string var and pumping
stuff into it inside the block. But there’s an easier Rubyesque way to
do this which I’ve seen in code elsewhere but I can’t find the code now
so I thought I’d ask here. Something to do with join or map or something
John S.
See if I qualify:
courses.collect {|c| c.code}.join(",")
John S. wrote:
I have a model, Account, with many Courses. I want to display the course
codes for those courses as comma delimited text in an attribute of the
account. So I would have
Account << ActiveRecord::Base
has_many :courses
def get_course_codes_as_text
courses.each {|course| something something but I don’t know what
end
Now I could do it the hard way by setting up a string var and pumping
stuff into it inside the block. But there’s an easier Rubyesque way to
do this which I’ve seen in code elsewhere but I can’t find the code now
so I thought I’d ask here. Something to do with join or map or something
John S.
On Tue, Sep 9, 2008 at 10:11 PM, John S. <
[email protected]> wrote:
end
a = []
courses.each { |course|
a.push(course.code)
}
a = a.join “,”
This ought to do it.
~~
Shiv
On Tue, Sep 9, 2008 at 9:46 AM, Shiv N Gautam [email protected]
wrote:
Account << ActiveRecord::Base
a = a.join “,”
This ought to do it.
~~
Shiv
or… (a bit more concise)
courses.collect(&:code).join(’,’)
–
Vince Hodges
http://www.imbas.ca/
William Y. wrote:
See if I qualify:
courses.collect {|c| c.code}.join(",")
Yes, that’s the code snippet I was looking for!
Thanks
John S.
Newbie question: how do I prevent your code snippet from becoming an n-
fetch?
Eager loading will work, but if all I want are the codes, then eager
loading of the associated courses will over-retrieve data.
Yes, yes, I know - don’t over optimize. But if I know how to optimize,
at least I can put a comment in the code to remind me when I get
twitter-size traffic. 
– Bosco
On Sep 9, 9:55 am, William Y. [email protected]