On p. 93, AWDWR(3rd) it says,
--------
...we could do this:
<span><%= sprintf("$0.02f", product.price) %</span>
This would work, but it embeds knowledge of currency formatting into the
view. Should we want to internationalize the application later, this
would be a maintenance problem.
---------
<Goody. Let''s move the formatting out of the view and into a more
centralized location. The Product model? Hmm...maybe, but not all
calls to the Product model will want the number converted to a formatted
string. The ProductsController then? Yes, yes. That must be it!>
<turn the page>
--------
Instead, let''s use a helper method to format the price as a currency.
...
...
<span><%= number_to_currency(product.price) %</span>
--------
Wt?? How does that solve any maintenance issues. If I later want to
change the view to display a different format, what''s the difference
between having to change the parameters of number_to_currency()
everywhere it appears vs. changing the format of sprintf()?
--
Posted via http://www.ruby-forum.com/.
On May 2, 1:44 pm, 7stud -- <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> ... > <span><%= number_to_currency(product.price) %</span> > -------- > > Wt?? How does that solve any maintenance issues. If I later want to > change the view to display a different format, what''s the difference > between having to change the parameters of number_to_currency() > everywhere it appears vs. changing the format of sprintf()?Well rather than having format strings spread all over the place, you centralized the concept of formatting a number in one place, the number_to_currency method. If you wanted to change currency formatting you''d just have to change that one helper. Fred
Frederick Cheung wrote:> On May 2, 1:44�pm, 7stud -- <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote: >> ... >> <span><%= number_to_currency(product.price) %</span> >> -------- >> >> Wt?? �How does that solve any maintenance issues. �If I later want to >> change the view to display a different format, what''s the difference >> between having to change the parameters of number_to_currency() >> everywhere it appears vs. changing the format of sprintf()? > > Well rather than having format strings spread all over the place, you > centralized the concept of formatting a number in one place, the > number_to_currency method. If you wanted to change currency formatting > you''d just have to change that one helper. >How do you override a helper method? -- Posted via http://www.ruby-forum.com/.
On May 3, 12:15 am, 7stud -- <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> How do you override a helper method? >Same as any other method ? (although I suppose helper :all might throw a slight spanner in the works) Fred> -- > Posted viahttp://www.ruby-forum.com/.