I have a table that contains currencies I support which has the
columns:
id,
ch (the character to display when showing currency)
name (the human name of the currency …)
This table is currently loaded with these values:
currencies:
Name ch
U.S.D $
Euro &euro
G.B.P. £
I created a method in my ‘currency’ model called ‘menustr’ which I use
in collection_select to show the currency options:
where @zcurtype is an array containing all the currencies in the
currencies table.
Instead of putting the pretty html version of £ and &euro in my
pull down menu, collection_select’s form is quoting them and I still
see the “£” and “&euro” text.
Instead of putting the pretty html version of £ and &euro in my
pull down menu, collection_select’s form is quoting them and I still
see the “£” and “&euro” text.
Append a semicolon to the values in your table that are HTML symbols.
–
We develop, watch us RoR, in numbers too big to ignore.
Instead of putting the pretty html version of £ and &euro in my
pull down menu, collection_select’s form is quoting them and I still
see the “£” and “&euro” text.
Append a semicolon to the values in your table that are HTML symbols.
Thanks for the response. I have the semi-colon on the end of my values
for ‘ch’ in my currencies table. If I list my table using the default
scaffolding, I get what I want:
Listing currencies (sorry for the formatting)
Name Ch Menustr Actions
USD $ $; USD Show Edit Destroy
Euro ? ?; Euro Show Edit Destroy
GBP £ £; GBP Show Edit Destroy
However, when I populate a pull-down menu using collection_select, the
symbol reverts back to either £ or &euro which doesn’t look as
pretty
My controller does this:
def new @customer = Customer.new
@zcurtype= Currency.find(:all)
end
and the chunk in the form template does this for the pull-down:
Aha… So collection_select escapes html. That explains it. I will
use your suggestion and build up the option lists manually.
Too bad we can’t pass an :escape => false or something to
collection_select.
Good idea. While the value tag of the option must be escaped
(see http://dev.rubyonrails.org/ticket/2011), the option text
is html, and that need not be escaped. I’ll submit a patch.
–
We develop, watch us RoR, in numbers too big to ignore.
Yes, the Rails select options builder is calling html_escape on the
option texts and values.
You’ll either have to build your html options manually, or override
the html_escape method.
Mark,
You are correct. I didn’t know that it did that until now but now I
do. It’s too bad we can’t pass an :escape => false or something to
collection_select.
Instead of putting the pretty html version of £ and &euro in my
pull down menu, collection_select’s form is quoting them and I still
see the “£” and “&euro” text.
Anyone have a way to work around this?
Thanks!
here, you dropped this: ‘;’
try € and £
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.