2015-07-14 3 views
1

Я пытаюсь связать значок шрифта Awesome со строкой атрибута Rails.Связывание шрифта Удивительный значок с атрибутом Rails

Я попытался это,

<%= link_to do %> 
    <i class="fa fa-link"><% school.website %></i> 
    <% end %> 

это,

<i class="fa fa-link" href="<% school.website %>"></i> 

и это:

<i class="fa fa-link" href="<%= school.website %>"></i> 

среди других вариантов, и не могу получить правильный синтаксис.

Понравилась бы какая-то помощь в синтаксисе здесь, похоже, не может найти конкретного ответа на то, как работает ссылка на атрибуты, только фактические статические текстовые hrefs.

PS: Я новичок в Rails/использовании Rails 4.2.

+0

Было бы очень полезно, если вы показали нам, что ошибка была для каждого из указанных выше (т.е. нежелательный выход), - и дайте нам образец того, какой будет ваш желаемый результат? –

+0

Также: '<% school.website%>' никогда не будет работать - вы должны использовать '<% =' для того, чтобы вывод действительно отображался на странице –

+0

И наконец: можете ли вы дать в качестве придуманного примера того, что «школа .website' будет выглядеть? у него есть 'http: //' в нем? –

ответ

3

Попробуйте это:

<%= link_to ('<i class="fa fa-link"></i>').html_safe, desired_path %> 
+0

Это добавляет мой текущий URL-адрес к нужному URL-адресу и приводит меня к: [link] (http: // localhost: 3000/www.codecore.ca) , потому что мне нужно использовать '<% = link_to ('< i class = "fa fa-link"> ') .html_safe, school.website%> ' для вашего примера. –

+0

Желательный путь должен быть маршрутом рельсов, куда вы хотите его отпустить.Куда вы хотите пойти в своем приложении? Запустите 'rake routes' и пройдите маршрут, на который вы хотите« link_to »с добавленным« _path » –

+0

Извините, моя ошибка. То, что вы предоставили, является правильным синтаксисом. Однако это будет работать только тогда, когда значение 'school.website' имеет значение' https: // ... '. В противном случае он думает, что это путь и наклеить его как слизню. Спасибо! –

0

Проходя его как блок тоже работает.

<%= link_to school.website do %> 
    <%= '<i class="fa fa-link"></i>'.html_safe %> 
<% end %> 
0

Предполагая school.website является URL, который вы хотите перейти по ссылке и отображать ссылку, а рядом значок ссылки из шрифта удивительного:

<%= link_to("<i class='fa fa-link'></i> #{school.website}".html_safe,school.website) %> 
0

я собираюсь предложить что-то немного другой.

Я personlly с помощью glyphicons/Ф.А. много на моем сайте, так что я решил создать маленький помощник в application_helper.rb

application_helper.rb

def fa(glyph, text = nil) 
    html = "<i class=\"fa fa-#{glyph}\"></i>" 
    html << " #{text.to_s.html_safe}" if text 
    html.html_safe 
end 

И действительно правильный синтаксис использовать в представлениях становится либо:

<%= link_to(school.website, class: "xxx") do %> 
    <%= fa('link') %> 
<% end %> 

ИЛИ (более компактный)

<%= link_to(school.website, class: "xxx"){ fa('link') } %> 
+0

Я помню, что один из 'button_to/link_to' не поддерживает html как« текстовый »аргумент, поэтому неплохо использовать блоки для предоставления текстового содержимого html –

0

Учитывая school.website является URL, и вы включили иконки в CSS, следующий будет делать:

<%= link_to(school.website) do %> 
    <i class="fa fa-link"></i> 
<% end %> 
Смежные вопросы