Syntax with link_to using block, remote, parameters and class/id

102 views
Skip to first unread message

William Hatch

unread,
Sep 9, 2010, 10:55:46 AM9/9/10
to Ruby on Rails: Talk
Rails 3rc, Ruby 1.9.2

Newish to rails; very new to rails3

I'm trying to create a link using a block so I can wrap the name contents in a span, for an ajax request using multiple parameters and finally, also specifying the class and id of the generated link element. Here's what I've got so far:

<%= link_to(
:url=>{
:controller => 'themes', :action => 'remove_tag',
:entity_id => entity_id, :theme_id => theme_id,
:entity => entity, :element_id => element_id, :parent_id=>parent_id
},
:remote => true,
:id => "theme-tag-#{entity}-#{entity_id}",
:class => "tag") do %>
<span class='subtract'><%= tag %></span>
<% end %>

This generates the following:

<a href="/explore/index/theme-tag-user-3?url[controller]=themes&amp;url[action]=remove_tag&amp;url[entity_id]=3&amp;url[theme_id]=16&amp;url[entity]=user&amp;url[element_id]=filter-contributor-3&amp;url[parent_id]=filter-contributors&amp;remote=true&amp;class=tag"><span class="subtract">Test Descriptor</span></a>

So, the href isn't correct, no class or id attributes as they're being treated like parameters instead, and normally with :remote=>true, I'd expect to see data-remote=true in the element. Also, and this is just my desire to learn more about why... but a link_to without a block would be something like link_to "Link Name", {url_stuff...}, :remote=>true, :class="my-class", :id=>"1" and so on, and these all work, but why do I have to specify the :url=> when using the block, but not otherwise? It just seems there's a significant syntactical difference between the two and I don't understand why there would be and I'd like to. Thanks.

Bill


radhames brito

unread,
Sep 9, 2010, 11:28:32 AM9/9/10
to rubyonra...@googlegroups.com
change :url to url_for



--
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.


William K. Hatch Jr.

unread,
Sep 9, 2010, 11:39:19 AM9/9/10
to rubyonra...@googlegroups.com

On Sep 9, 2010, at 11:28 AM, radhames brito wrote:

> change :url to url_for

Thanks, that did it. Man, that was most frustrating;-)

radhames brito

unread,
Sep 9, 2010, 11:46:03 AM9/9/10
to rubyonra...@googlegroups.com
yeah, you were passing a hash and not a helper method
Reply all
Reply to author
Forward
0 new messages