Итак, у меня есть этот код, который я хочу преобразовать в рельсы с помощью link_to:

<a href="#">
 <i class="icon-caret-right"></i>
 <span>Home</span>
</a>

Предоставление красиво отформатированного пространства между:> Домой

Ближайший код для получения того же результата, с которым я тестировал:

<%= link_to "Factcars", root_path, class: "icon-caret-right" %>

Что дает мне (без пробела между ними):> Домой

<i class="icon-caret-right" ><%= link_to content_tag(:span, "Factcars"), root_path %></i>

Дает тот же результат:> На главную

Есть ли правильный способ отформатировать этот код?

1
lightbots 3 Май 2014 в 04:29

2 ответа

Лучший ответ

Передать блок в link_to

<%= link_to "#" do %>
  <i class="icon-caret-right"></i>
   <span>Home</span>
<% end %>

В зависимости от link и name измените вышеуказанный метод.

4
Paritosh Piplewar 3 Май 2014 в 00:32

Помощник по навигации определяет простой метод для link_to_with_icon в модуле драгоценного камня Spree::Admin

#link_to_with_icon(icon_name, text, url, options = {}) ⇒ Object

Вы можете переопределить метод в собственном помощнике

def link_to_with_icon(icon_name, text, url, options = {})
  options[:class] = (options[:class].to_s + " fa fa-#{icon_name} icon_link with-tip").strip
  options[:class] += ' no-text' if options[:no_text]
  options[:title] = text if options[:no_text]
  text = options[:no_text] ? '' : raw("<span class='text'>#{text}</span>")
  options.delete(:no_text)
  link_to(text, url, options)
end
0
Joaquin Diaz 31 Май 2019 в 16:02