У меня есть поле поиска, которое я хочу отображать только на определенных страницах в разделе навигации в моем файле application.html.erb.
Как установить исключения? Это делается через главный контроллер приложения?
У меня есть поле поиска, которое я хочу отображать только на определенных страницах в разделе навигации в моем файле application.html.erb.
Как установить исключения? Это делается через главный контроллер приложения?
Есть несколько способов сделать это.
Наиболее очевидный способ - использовать переменную экземпляра для отметки.
В вашем application.html.erb
<%= render 'search' if @search_box %>
И везде, где вы хотите показать поиск, установите для переменной экземпляра флага значение true.
def show
@search_box = true
...
end
Редактировать
Вы также можете использовать фильтры Rails в своих контроллерах, если хотите, чтобы несколько действий отображали поиск.
before_action :flag_search_box, :only => [:show, :new, :all_kinds_of_controller_actions_where_i_wanna_show_search]
...
private
def flag_search_box
@search_box = true
end
Я мог бы предложить разместить поле поиска не на странице application.html, а, возможно, на отдельных html-страницах, на которых вы хотите, чтобы оно отображалось. Вы можете сделать поиск частичным, чтобы получить к нему доступ с других страниц с помощью всего одной строчки кода.