Синтаксис для link_to с блоком в rails3 с: remote => true, включая: class и: id - PullRequest
3 голосов
/ 09 сентября 2010

Ради бога, я часами бился об этом.Использование rails3 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 => {...} (оставив, если off выдает исключение с блоком, переходите на рисунок), а затем выполните это с помощью: remote => true,: id => "what",: class => "бла "и это работает.Что я делаю неправильно?Поскольку я новичок в рельсах в целом, я также хотел бы понять, почему этот синтаксис должен так сильно отличаться?Я имею в виду, на самом деле, слава богу, вам не нужно писать много подобных ссылок в веб-приложении ...; -)

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

Ответы [ 2 ]

3 голосов
/ 10 сентября 2010

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

2 голосов
/ 14 июля 2013

Просто поместите комментарий 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 %>
...