I would always go for A

def commified_name
  "#{self.firstname} #{self.last_name}"
end

It keeps the formatting in one place, no need for an additional helper 
method or indeed a helper class. I'd only really use a helper method to 
encapsulate repeated code in views. Just suppose you wanted to see the 
commified name in the console or use it to perform some kind of 
validation, etc.

RobL

ericindc wrote:
> Say I have to Models, Project and Creator, related to each other such
> that @project.creator is valid.  Creator has two fields, first_name
> and last_name, for the creator's name.  Assuming that I want a quick
> way to display the creator's name as "last_name, first_name" inside
> the view, which is the best approach (efficiency, the Rails way, etc.)
> and why?
>
> Here are the approached I've come up with...
>
> A) Create a method in the Creator class called commified_name and use
> @project.creator.commified_name in the view.  This seems like a good
> option.  It's DRY and fits the rest of the mold for @project.xyz in
> the view, but I think following MVC the model is not meant for
> formatting, right?
>
> def commified_name
>     [self.last_name, self.first_name].join(', ')
> end
>
> B) Do the join inside the view.  Probably the worst of the options
> since it allows for variations in how the name is displayed.
>
> C) Create a method in the Creator Helper called commified_name and use
> commified_name in the view.  I believe this is the best answer since
> formatting of information that goes in the View belongs in a Helper,
> right?  I just find that A feels more right to me.
>
> def commified_name
>     [...@project.creator.last_name, @project.creator.first_name].join(',
> ') if @project
> end
>
> If C (or A) is the best answer, is this a good way to accomplish what
> I'm after.  Thanks in advance.
>
>
> >
>   


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to