2016-08-01 12 views
0

Я пытаюсь выяснить, как написать вспомогательный метод в моих рельсах 4 приложения.Rails 4 - как написать вспомогательный метод

Моя попытка ниже:

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 blue'> 
      <a href='resume.html' class='hvr-sweep-to-bottom'> 
      <i class='flaticon-graduation61'> 
      </i><span>Researh History</span></a> 
     </li> 

     <li class='col-xs-6 col-sm-3 nopadding menuitem cyan'> 

      <a href='#portfolio' class='hvr-sweep-to-bottom'><i class='flaticon-book-bag2'></i><span>Projects & Programs</span></a> 
     </li>" 
    end 
    end 


end 

Когда я сохранить это и попробовать его, он печатает инструкции CSS, например,

<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> <li class='col-xs-4 col-sm-2 nopadding menuitem' style='background:009CB2'> <a href='#portfolio' class='hvr-sweep-to-bottom'> 

Как написать вспомогательный метод, который использует css для создания вывода на странице вместо печати инструкций css?

ответ

1

Ваша функция будет возвращать строку, вам может понадобиться raw, html_safe или h для экранирования в HTML, как это:

В ваших просмотров:

<%= raw (items_for_profile_menu(profile)) %> 

или

items_for_profile_menu(profile).html_safe 

или

<%=h (items_for_profile_menu(profile)) %> 
1

Попробуйте следующее:

def helper_html_safe(raw) 
    raw.to_s.html_safe 
end