2015-02-03 4 views
0

В моем файле application.html У меня есть блок кода, который отображает сообщения об ошибках вверху страницы. Я хочу исключить этот блок кода с определенной страницы. Как я могу ссылаться на конкретную страницу?Rails 4 - Исключить страницу из части application.html

Например: if path != thankyou_path #codeblock end? Каким будет синтаксис для рельсов, чтобы исключить запуск блока кода на определенной странице?

ответ

2

Я считаю, что вы можете использовать current_page?, как:

unless current_page?(controller: 'controller_name', action: 'action_name') 
    <div>Error messages</div> 
end 

Или с path:

unless current_page?(some_path) 
    <div>Error messages</div> 
end 
2

Хотя CURRENT_PAGE? код хорош для одной страницы, это не очень масштабируемо.

Другой способ сделать это путем добавления метода в контроллере приложения, как это:

def disable_error_messages 
    @disable_error_messages = true 
end 

тогда, на ваш взгляд, вы можете просто проверить, как это:

unless @disable_error_messages 
    <div>Error messages</div> 
end 

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