hugues
#1
Hello there,
I do not know if my topic is right so I’ll explain the problem :
I have a Project model :
class Project < ActiveRecord::Base
has_and_belongs_to_many :services
end
In my views. I would like to list the services in the title of the page.
I did :
<% for service in @project.services %-><%= service.name_fr.downcase -%>,
<% end -%>.
The problem is with the listing itself, it puts this :
{Project.name} required {service.name1}, {service.name2},
{service.name3},.
There is a problem with the last comma. It looks awful from a web
developer view.
I would like :
{Project.name} required {service.name1}, {service.name2} and
{service.name3}.
Notice the attribute «and» and «dot» at the end
How do you call that thing I am looking for?
Is there a way to do it like the second exemple?
Thx a lot for your time and help.
Hugues
hugues
#2
On Sun, Sep 6, 2009 at 3:33 PM, Hugues
Brunelle[email protected] wrote:
I would like :
{Project.name} required {service.name1}, {service.name2} and
{service.name3}.
Something like this should work:
@project.services.collect {|service| service.name}.join(", ").gsub(/,
([A-Za-z]+)$/,’ and \1.’)
:: though you might need to tweak that regex, depending on what’s
in a service name…
HTH,
Hassan S. ------------------------ [email protected]
twitter: @hassan
hugues
#3
@project.services.collect{|s| s.name}.to_sentence
On Sep 6, 3:33 pm, Hugues B. [email protected]
hugues
#4
On Sun, Sep 6, 2009 at 5:47 PM, Eric[email protected] wrote:
@project.services.collect{|s| s.name}.to_sentence
Sweet, didn’t know that one. Let’s add the period, though:
@project.services.collect{|s| s.name}.to_sentence.concat(".")
Et voila, another good day’s work 
–
Hassan S. ------------------------ [email protected]
twitter: @hassan
hugues
#5
Hello Hassan and Eric,
Outstanding! Thanks a lot, It works perfectly.
Hugues