2013-09-04 4 views
3

У меня есть окно поиска, которое я хочу отображать только на определенных страницах через раздел навигации в файле application.html.erb.Оказание на определенных страницах через файл application.html.erb?

Как установить исключения? Это делается через главный контроллер приложения?

+1

Как и какие условия вы хотите использовать для отображения окна поиска? –

ответ

2

Существует несколько способов сделать это.

Наиболее очевидным способом является использование переменной экземпляра для отметки.

В вашем application.html.erb

<%= render 'search' if @search_box %> 

И везде, где вы хотите, чтобы показать результаты поиска, установите переменный экземпляр флага верно.

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 
+0

Извините, я забыл упомянуть, что я просматриваю окно поиска через частичное внутри application.html.erb, используя <% = render 'search'%>, когда кто-то пытается войти в систему через устройство, я получаю уродливую ошибку, что хорошо, я только хочу, чтобы окно поиска отображалось на определенных страницах. –

+1

Все нормально. Идея по-прежнему остается прежней. Вы можете отобразить частичный поиск только для определенных представлений с переменной экземпляра флага. –

+1

Спасибо, много! Ты спасатель жизни! :) –

0

Я могу предложить разместить поле поиска не на странице application.html, а, возможно, на отдельных html-страницах, которые вы хотите отобразить. Вы можете сделать поиск частичным, чтобы вы могли получить доступ к нему с других страниц только с одной строкой кода.

Смежные вопросы