Использование link_to со встроенным HTML

Я использую загрузочный материал Twitter, и у меня есть следующий HTML:

<a class="btn" href="https://stackoverflow.com/questions/9401942/using-link-to-with-embedded-html/"> Do [email protected] 

Каков наилучший способ сделать это в Rails? Я бы хотел использовать но отбрасывает меня?

Два пути. Или:

 <%= link_to user_path(@user) do %>  Do [email protected] <% end %> 

Или:

 <%= link_to ' Do [email protected]'.html_safe, user_path(@user) %> 

У меня была такая же потребность в последнее время. Попробуй это:

<%= link_to ' Do it'.html_safe, user_path(@user) %>

Если вы хотите, чтобы ссылка в rails, которая использует тот же самый class значков из загрузочного буфера twitter, все, что вам нужно сделать, это что-то вроде этого.

 <%= link_to "Do [email protected]", user_path(@user), :class => "btn icon-ok icon-white" %> 

У вас также есть возможность создать вспомогательный метод, как показано ниже:

 def link_fa_to(icon_name, text, link) link_to content_tag(:i, text, :class => "fa fa-#{icon_name}"), link end 

Адаптируйте classы к вашим потребностям.

В gem twitter-bootstrap-rail: они создают вспомогательный символ

  def glyph(*names) content_tag :i, nil, :class => names.map{|name| "icon-#{name.to_s.gsub('_','-')}" } end 

Таким образом, вы можете использовать его как: glyph(:twitter) и вы можете использовать ссылку helper: link_to glyph(:twitter), user_path(@user)

Использование HAML:

 = link_to model_path do %img{src: '/assets/someimg.png'} 

Я сделаю это, так как вы еще не приняли ответ
и другие ответы не на 100%, что вы искали.
Это способ сделать это Rails способом.

 <%= link_to(user_path(@user), :class => 'btn') do %>   Do it! <% end %> 

Изменить: оставляя мой ответ для дальнейшего использования,
но @ justin-herrick имеет правильный ответ, когда
работа с Twitter Bootstrap.

Я думаю, вы можете упростить его с помощью вспомогательного метода, если вы часто используете его в своем приложении.

поместите его в helper / application_helper.rb

 def show_link(link_text, link_source) link_to("#{content_tag :i, nil, class: 'icon-ok icon-white'} #{link_text}".html_safe, link_source, class: "btn") end 

Затем назовите его из своего файла вида так же, как link_to

 <%= show_link "Do it", user_path(@user) %> 

Если вы используете bootstrap 3.2.0, вы можете использовать этот помощник в своем app/helpers/application_helper.rb

 module ApplicationHelper def glyph(*names) content_tag :i, nil, :class => names.map{|name| "glyphicon glyphicon-#{name.to_s.gsub('_','-')}" } end end 

а затем, в ваших взглядах:

 link_to glyph(:pencil) + ' Edit', edit_post_path(@post), class: 'btn btn-warning' 
 def show_link (source, text) link_to source, {'data-original-title' => 'Show', 'data-toggle' => 'tooltip', :class => 'btn btn-xs btn-success'} do "#{text} #{content_tag :i, nil, class:' glyphicon glyphicon-eye-open' }".html_safe end end 

В обычном HTML мы делаем,

  Register 

В Ruby On Rails:

 <%= link_to routeName_path do %>  Link Name <% end %> <%= link_to register_path do %>  Register <% end %> 

Это мой вывод

Помощник на основе предложения Титаса Милана, но используя блок:

 def show_link(link_text, link_source) link_to link_source, { class: 'btn' } do "#{content_tag :i, nil, class: 'icon-ok icon-white'} #{link_text}".html_safe end end 
  • Twitter Bootstrap - вкладки - URL-адрес не изменяется
  • $ (window) .width () не совпадает с запросом медиа
  • Bootstrap 3 Свернуть
  • Кнопка Аккордеон Bootstrap для переключения "data-parent" не работает
  • Хороший способ динамически открывать / закрывать popover (или всплывающую подсказку), используя угловой, основанный на выражении?
  • Колонка заказа в Bootstrap 4
  • Как использовать CKEditor в модуле Bootstrap?
  • Используйте раскрывающееся меню Bootstrap 3 в качестве контекстного меню
  • Загадочный пробел между Bootstrap2 Navbar и строкой внизу
  • bootstrap 4 nav не отображает гамбургер при изменении размера
  • Как создать липкое меню левой боковой панели с помощью бутстрапа 3?
  • Давайте будем гением компьютера.