#ruby-on-rails #ruby #ruby-on-rails-4
#ruby-on-rails #ruby #ruby-on-rails-4
Вопрос:
Я хочу назначить active
класс моему ученику, если он находится на странице ученика.
<p><%= link_to student.name, student_url(student.student_id),
class: ('active' if current_page? ) %></p>
Ниже приведен мой URL, по которому я перемещаюсь.
https://localhost:3000/student/19
Как бы я использовал Rails helper current_page?
для достижения этого.
Ответ №1:
Текущая страница? методу необходимо передать параметры в метод. Например:
<p><%= link_to student.name, student_url(student.student_id),
class: ('active' if current_page?(student_path(student.student_id)) ) %></p>
student_path(student.student_id) должен возвращать /student/19, в то время как current_page?(student_path(student.student_id)) должен возвращать true.
Я не уверен, что структура вашего if будет работать. Иногда я просто тернарный для таких ситуаций:
<p><%= link_to student.name, student_url(student.student_id),
class: (current_page?(student_path(student.student_id)) ? 'active' : '' ) %></p>
Вы можете уловить идею. Надеюсь, это укажет вам правильное направление.
Комментарии:
1. Я использую student_url и, похоже, это не работает. должны ли мы использовать student_path или мы также можем использовать student_url в current_page helper.
2. student_path просто отобразит «/student/19″ вместо » localhost:3000/student/19 «. api.rubyonrails.org/classes/ActionView/Helpers /… <— какая-нибудь документация о current_page? метод.