Rails - 如何将css添加到辅助方法

时间:2016-08-01 04:20:16

标签: css ruby-on-rails helper view-helpers

我试图将一个长if语句移出我的视图并转换为辅助方法。

我目前有:

module ProfilesHelper
    def items_for_profile_menu(profile)
        if current_user = @profile.user_id 
      "<li class="col-xs-4 col-sm-2 nopadding menuitem" style="background:#006F7F">
               <a href="index.html" class="hvr-sweep-to-bottom">
                       # link_to dashboard_path(@profile.dashboard) 
                      <span>Dashboard</span>
               </a>

        </li>

                <li class="col-xs-4 col-sm-2 nopadding menuitem" style="background:#39AFBF">
                     <a href="#resume" class="hvr-sweep-to-bottom">
                     <!-- <i class="flaticon-graduation61"></i> --><br><br>
                     <span>Timeline</span></a>
        </li>"

    <% else %>

                  "<li class="col-xs-6 col-sm-3 nopadding menuitem orange">
                     <a href="#stats" class="hvr-sweep-to-bottom"><i class="flaticon-placeholders4"></i><span>Impact</span></a>
                  </li>
                  <li class="col-xs-6 col-sm-3 nopadding menuitem red">
                     <a href="#feedback" class="hvr-sweep-to-bottom"><i class="flaticon-earphones18"></i><span>Feedback</span></a>
                  </li>"
               <% end %>

    end


end

我陷入困境,想知道我是否可以在助手本身写css?如果可以,我怎样才能了解使其运行所需的修改?在视图中我能够写出:background:#006F7F在列表项中。如果我将其添加到帮助程序 - 然后收到#作为注释。

有谁能看到如何使用CSS设置辅助方法?

2 个答案:

答案 0 :(得分:0)

例如使用.html_safe

def my_name
    name = "<h1>Eric Santos!</h1>"
    name.html_safe
 end
希望你明白这个想法!

答案 1 :(得分:0)

您没有在代码中正确终止字符串。一个双引号(")将终止之前的双引号(")。因此,您的字符串被视为"<li class="作为一个字符串,并在此之后查找",如果不是这样,您将收到错误。

因此,对于在一个大字符串中声明类,在一个大的双引号(')字符串中使用单引号(")并将每个大字符串与(+)连接起来。

要添加课程,请使用单引号"<li class='col-xs-4 col-sm-2 nopadding menuitem'>Hi </li>" + "<li class='col-xs-4 col-sm-2 nopadding menuitem'>Hello </li>"

更改您的代码,如下所示。

module ProfilesHelper
  def items_for_profile_menu(profile)
    if current_user = @profile.user_id 
      "<li class='col-xs-4 col-sm-2 nopadding menuitem' style='background:#006F7F'>
        <a href='index.html' class='hvr-sweep-to-bottom'>
          <span>Dashboard</span></a>
      </li>
      <li class='col-xs-4 col-sm-2 nopadding menuitem' style='background:#39AFBF'>
        <a href='#resume' class='hvr-sweep-to-bottom'>
        <span>Timeline</span></a>
      </li>"
    else
      "<li class='col-xs-6 col-sm-3 nopadding menuitem orange'>
        <a href='#stats' class='hvr-sweep-to-bottom'><i class='flaticon-placeholders4'></i><span>Impact</span></a>
      </li>
      <li class='col-xs-6 col-sm-3 nopadding menuitem red'>
        <a href='#feedback' class='hvr-sweep-to-bottom'><i class='flaticon-earphones18'></i><span>Feedback</span></a>
      </li>"
    end
  end

end