On Monday, 1 September 2014 15:50:34 UTC-4, tamouse wrote:
>
> From a lengthy discussion on #rubyo...@freenode.net <javascript:>, I am 
> wondering about something. The *_path and *_url methods return plain String 
> objects, not an ActiveSupport::SafeBuffer. If something is passed into 
> (say) link_to that contains an escapable character, such as & in a query 
> string, link_to will escape it.
>
> I haven't encountered people putting .html_safe on *_path methods before, 
> so I didn't know about this. Is this something well-known? Is it expected? 
> My assumption was that it would have been html_safe.
>
> Anyone have any thoughts on this?
>
> Example:
>
> >>  app.glucose_readings_path(:hello => true, :goodbye=> false)  
> => "/glucose_readings?goodbye=false&hello=true"
>
> >>  app.glucose_readings_path(:hello => true, :goodbye=> false).class
> => String < Object
>
> >>  foo.link_to "hi", app.glucose_readings_path(:hello => true, :goodbye=> 
> false)
> => "<a href=\"/glucose_readings?goodbye=false&amp;hello=true\">hi</a>"
>
>
This is the correct way to format links with & in them. Browsers tolerate 
the un-escaped version, but it's not technically valid HTML...

--Matt Jones 

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/c622dc12-303f-4741-8d59-c821b632a01a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to