Ruby on Rails: как добавить класс в хелпер link_to? - PullRequest
7 голосов
/ 17 сентября 2010

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

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

это мой код

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

Ответы [ 2 ]

13 голосов
/ 17 сентября 2010

Если вы прочитаете 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/ ) }

Которые можно разместить на одной строке, если хотите.

7 голосов
/ 17 сентября 2010

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

<%= link_to "link", {:controller => :my_controller, :action => :index}, {:class => ...} %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...