построить link_to в Rails 3.2.1 - PullRequest
1 голос
/ 13 марта 2012

Здесь мой дизайнер меняет способ использования тега привязки в html-шаблоне, поэтому мне нужно изменить и в моем шаблоне rails

, если он помещен ниже тега на утвержденных HTML-страницах,

<a href="#">About Me</a>

Я конвертирую его следующим образом

<%= link_to "About Me", '#' %>

Теперь, если он поместил <a href="#">About <span> Me</a> с тегом span в заголовке

 <ul>
       <li><a href="#">About <span>Me</span></a></li>
 </ul>

Вот вывод, в основном тег span разбиваетстрока и отображение во второй строке

About
Me

Теперь мне нужна помощь для преобразования этого тега с тегом rails 3.2.1.

как <%= link_to "About <span> Me</span>", '#' %>

Как мне это сделать?тот?(Я знаю, что сгенерирует сообщение об ошибке)

Ответы [ 3 ]

4 голосов
/ 13 марта 2012

Вы должны убедиться, что рельсы не экранируют теги html.Вы можете сделать это, используя html_safe или raw:

<%= link_to "About <span> Me</span>".html_safe, '#' %>

или

<%= link_to raw("About <span> Me</span>"), "#" %>
1 голос
/ 13 марта 2012

Если перенос всей ссылки в диапазоне нормальный, создайте помощник, который выполняет следующие действия:

  def spanned_link_to(name,path=nil,options=nil)
    content_tag :span do
      link_to name, path, options
    end
  end

И используйте его следующим образом:

<%= spanned_link_to "About Me","#" %>

Если нет,

<%= link_to raw("About <span>Me</span>"),"#" %>
0 голосов
/ 13 марта 2012

Я бы дал link_to, чтобы уступить блоку.Я не совсем уверен, как это выглядит в ERB (я использую HAML).Вы можете написать ссылку, например, так:

link_to '#' do
  content_tag(:span, "About me")
end

или я думаю, что вы можете сделать один лайнер, как это:

link_to '#' { content_tag(:span, "About me") }
...