Ruby on Rails - встроить дополнительный HTML в вызов link_to, который включает I18n - PullRequest
2 голосов
/ 02 апреля 2012

Я пытаюсь встроить дополнительный HTML в вызов link_to, как указано в этой теме Вставить дополнительный HTML в вызов link_to

Однако я также хотел бы использовать I18n. Так что вместо этого:

 <%= link_to '<i class="icon-search"></i> Show'.html_safe, exercise_path(exercise), :class => 'btn btn-small' %>

Я бы хотел использовать t(:show) или I18n.t(:show) вместо жестко закодированного Show в приведенном выше примере. У меня возникли проблемы с определением правильного синтаксиса. Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

9 голосов
/ 02 апреля 2012

Существует более простой / понятный способ встраивания дополнительных элементов в link_to с использованием его синтаксиса блоков.Пример

<%= link_to exercise_path(exercise), :class => 'btn btn-small' do %>
  <i class="icon-search"></i>
  <%= t(:show).html_safe %>
<% end %>
0 голосов
/ 02 апреля 2012

Используйте функцию raw, как показано ниже:

<%= link_to raw("<i class='icon-search'>some italic text </i> #{t(:show)}"), exercise_path(exercise), :class => 'btn btn-small' %>
0 голосов
/ 02 апреля 2012

<%= link_to "<i class='icon-search'></i> #{t(:show)}".html_safe, exercise_path(exercise), :class => 'btn btn-small' %>

Используйте #{} для встраивания кода рубина в строки.

...