改进了Rails中link_to的使用?

时间:2013-03-04 02:12:01

标签: ruby-on-rails views

My 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”来清理代码吗?

3 个答案:

答案 0 :(得分: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' %>

答案 1 :(得分:1)

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

如果您想要一行,请点击此处:

<%= content_tag(:li, link_to(content_tag(:i, nil, class: 'icon-home'), root_path)) %>

答案 2 :(得分:-1)

这要好得多:

= link_to new_resource_path, :class=>'btn btn-primary' do
  %i.icon-file-new
  Add Resource
相关问题