html inside of erb

12 views
Skip to first unread message

Craig White

unread,
Jan 16, 2012, 12:15:03 PM1/16/12
to Ruby on Rails: Talk
Looking to embed the html 'right guillemet' (») inside of a link_to reference in my view code...

<%= (role.rights.sort{|a, b| [a.controller, a.action] <=> [b.controller, b.action]}.collect{|rights| [link_to (rights.controller + " &raquo; " + rights.action, :controller => "rights", :action => "edit", :id => rights.id)]}).join("<br />").html_safe -%>

which results in...

<a href="/rights/edit/53">groups &amp;raquo; add_member</a><br /><a href="/rights/edit/50">groups &amp;raquo; create</a><br /><a href="/rights/edit/54">groups &amp;raquo; delete_member</a><br /><a href="/rights/edit/52">groups &amp;raquo; destroy</a>

which is not what I want obviously.

(and yes, I will probably just move this to a helper once I get it working)

Is it possible to embed HTML code inside the 'link_to' ?

--
Craig White ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ craig...@ttiltd.com
1.800.869.6908 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ www.ttiassessments.com

Need help communicating between generations at work to achieve your desired success? Let us help!

Charles A. Lopez

unread,
Jan 16, 2012, 12:21:35 PM1/16/12
to rubyonra...@googlegroups.com
Give an example of the html code.



--
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 rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.






Craig White

unread,
Jan 16, 2012, 12:25:28 PM1/16/12
to rubyonra...@googlegroups.com
I just did (&raquo; is the html I want embedded inside the 'link_to')

Craig

Colin Law

unread,
Jan 16, 2012, 12:26:51 PM1/16/12
to rubyonra...@googlegroups.com
On 16 January 2012 17:15, Craig White <craig...@ttiltd.com> wrote:
> Looking to embed the html 'right guillemet' (&raquo;) inside of a link_to reference in my view code...
>
> <%= (role.rights.sort{|a, b| [a.controller, a.action] <=> [b.controller, b.action]}.collect{|rights| [link_to (rights.controller + " &raquo; " + rights.action, :controller => "rights", :action => "edit", :id => rights.id)]}).join("<br />").html_safe -%>
>
> which results in...
>
> <a href="/rights/edit/53">groups &amp;raquo; add_member</a><br /><a href="/rights/edit/50">groups &amp;raquo; create</a><br /><a href="/rights/edit/54">groups &amp;raquo; delete_member</a><br /><a href="/rights/edit/52">groups &amp;raquo; destroy</a>
>
> which is not what I want obviously.
>
> (and yes, I will probably just move this to a helper once I get it working)
>
> Is it possible to embed HTML code inside the 'link_to' ?

One way is to use "#{rights.controller} &raquo; #{rights.action}".html_safe

Colin

>
> --
> Craig White ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ craig...@ttiltd.com
> 1.800.869.6908 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ www.ttiassessments.com
>
> Need help communicating between generations at work to achieve your desired success? Let us help!
>

> --
> 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 rubyonra...@googlegroups.com.
> To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
>

--
gplus.to/clanlaw

Craig White

unread,
Jan 16, 2012, 1:11:17 PM1/16/12
to rubyonra...@googlegroups.com

On Jan 16, 2012, at 10:26 AM, Colin Law wrote:

> On 16 January 2012 17:15, Craig White <craig...@ttiltd.com> wrote:
>> Looking to embed the html 'right guillemet' (&raquo;) inside of a link_to reference in my view code...
>>
>> <%= (role.rights.sort{|a, b| [a.controller, a.action] <=> [b.controller, b.action]}.collect{|rights| [link_to (rights.controller + " &raquo; " + rights.action, :controller => "rights", :action => "edit", :id => rights.id)]}).join("<br />").html_safe -%>
>>
>> which results in...
>>
>> <a href="/rights/edit/53">groups &amp;raquo; add_member</a><br /><a href="/rights/edit/50">groups &amp;raquo; create</a><br /><a href="/rights/edit/54">groups &amp;raquo; delete_member</a><br /><a href="/rights/edit/52">groups &amp;raquo; destroy</a>
>>
>> which is not what I want obviously.
>>
>> (and yes, I will probably just move this to a helper once I get it working)
>>
>> Is it possible to embed HTML code inside the 'link_to' ?
>
> One way is to use "#{rights.controller} &raquo; #{rights.action}".html_safe

----
I understand the process of using the #{} but that is still in the middle of 'link_to' rails_tag helper and it seems that is the problem I am having.

Craig

Tim Shaffer

unread,
Jan 16, 2012, 1:21:04 PM1/16/12
to rubyonra...@googlegroups.com
The problem is that the "inner" string is not marked as html_safe. In your link_to tag, this string is not considered html_safe:

    link_to(rights.controller + " &raquo; " + rights.action, :controller => "rights", :action => "edit", :id => rights.id)

Colin's suggestion, which is the solution, is to mark the inner string as html_safe. The easiest way to do this is to use the #{} notation instead of string concatenation:

    link_to("#{rights.controller} &raquo; #{rights.action}".html_safe, :controller => "rights", :action => "edit", :id => rights.id)

Craig White

unread,
Jan 16, 2012, 1:43:38 PM1/16/12
to rubyonra...@googlegroups.com

----
I see said the blind man

and thanks Colin for the solution which was not apparent to me and I did have to clean up the syntax errors but it works.

Thanks

Craig

Reply all
Reply to author
Forward
0 new messages