Синтаксис для ссылки на блок with в rails3 с:remote= > true и включая: class и: id


Ради всего святого, я уже несколько часов бьюсь об это головой. Использование Rails 3 rc, 1.9.2.

Я пытаюсь создать link_to, который отправляет запрос ajax с параметрами, классом и идентификатором, и нуждается в блоке, чтобы я мог вставить тег span вокруг имени. Документация абсолютно бесполезна, как и многочисленные поисковые запросы google. Вот что у меня есть до сих пор:

<%= 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 %>

Сгенерированный url выглядит следующим образом:

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

Дескриптор теста

Я не могу указать должным образом что текст "тестовый дескриптор" на самом деле правильно включен в промежуток; форматирование кода здесь немного неудачно, однако, href неверен, нет класса или идентификатора, и он продолжает катиться вниз

Если бы мне не нужен был блок, я мог бы просто добавить имя и не указывать :url=>{...} (оставляя, если выкл вызывает исключение с блоком, поди разберись), а затем следуйте этому с :remote= > true,: id=> "whatever",: class=> "blah", и это работает. Что я делаю не так? Потому что я новенькая. для rails в целом, я также хотел бы понять, почему этот синтаксис должен так сильно отличаться? Я имею в виду, действительно, Слава Богу, вам не нужно писать много ссылок, как это в веб-приложении... ;- )

Заранее спасибо

2 3

2 ответа:

Оказывается, вы должны сделать url_for(...) вместо: url= > {...} и все получилось, как и ожидалось.

Просто помещаю комментарий wkhatch здесь, чтобы он был хорошо отформатирован.

<%= link_to(
    url_for(: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}") do %>
       <span class='subtract'></span><%= tag %>
<% end %>