1

我的 Rails 应用程序在各种视图中多次使用此链接格式:

<li><a class="" href="#"><i class="icon-briefcase"></i> Reports</a></li>

到目前为止,我已经使用这种格式对其进行了转换:

<li><%= link_to raw('<i class="icon-home"></i> Dashboard'), root_path %></li>

我可以更进一步,以某种方式重构 li 和 i class="icon-home" 以清理代码吗?

4

3 回答 3

1

如果您在多个地方使用此辅助方法(DRY),则首选辅助方法。查看 jvnill 的答案。

如果你想要一条线,你去:

<%= content_tag(:li, link_to(content_tag(:i, nil, class: 'icon-home'), root_path)) %>
于 2013-03-04T02:19:43.737 回答
1

你可以添加一个辅助方法

def menu_link(text, url, icon_class)
  content_tag :li do
    link_to url do
      content_tag(:i, '', class: icon_class) + text
    end.html_safe
  end
end

然后只需调用它使用

<%= menu_link 'Dashboard', root_path, 'icon-home' %>
于 2013-03-04T02:14:19.380 回答
-1

这要好得多:

= link_to new_resource_path, :class=>'btn btn-primary' do
  %i.icon-file-new
  Add Resource
于 2013-03-04T02:26:29.073 回答