Ruby / Rails - проблема построения метода с помощью request.fullpath - PullRequest
1 голос
/ 03 сентября 2010

Я пытаюсь создать метод для добавления определенного класса CSS в мое навигационное меню на текущих страницах.

Вот мой старт: (в application_helper)

def menu_links(param)
 if request.fullpath == "#{param}_path"
   return "#{param}_path"
 end
end

в моем приложении:

<%= menu_links("help") %>

Однако, если я изменю request.fullpath == "# {param} _path" на request.fullpath == help_path, это работает не знаю почему.

Спасибо за любую помощь!

1 Ответ

1 голос
/ 04 сентября 2010

Поскольку во втором случае (request.fullpath == help_path) используется метод help_path, который расширяется до некоторого URL (скажем, http://example.com/help). В первом случае вы просто используете строку "help_path", которая ничего не значит для Rails. Вам, вероятно, нужно использовать eval:

def menu_links(param)
  if request.fullpath == eval("#{param}_path")
    return eval("#{param}_path")
  end
end

Хотя это не лучшее решение ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...