Ruby on Rails: как добавить класс в ссылку на helper?

Как вы получаете link_to для создания чего-то вроде

<a class="myclass".....

Это мой код

<%= link_to "link", :controller => :my_controller, :action => :index, :class=>("on" if request.path =~ //my_controller/ ) %>

2 ответов


Если вы читали API, вы увидите следующий пример:

link_to(body, url_options = {}, html_options = {})

это означает, что синтаксис для link_to - " ссылка на что-то, затем что-то еще в фигурных скобках, а затем еще одна вещь в фигурных скобках."Другой способ интерпретации заключается в том, что куски должны быть хэшами.

link_to "link",
        { :controller => :my_controller, :action => :index }, 
        { :class=>("on" if request.path =~ /\/my_controller/ ) }

который можно все поместить на одной линии если вы любите.


в коде :class включается в url_options хэш, а не html_options. Попробуйте что-то вроде этого:

<%= link_to "link", {:controller => :my_controller, :action => :index}, {:class => ...} %>