Rails 4 - 从application.html的一部分中排除页面

时间:2015-02-03 20:58:57

标签: ruby-on-rails

在我的application.html文件中,我有一段代码,在页面顶部显示错误消息。我想从某个页面中排除这段代码。我如何参考具体页面?

例如:if path != thankyou_path #codeblock end? rails可以使用什么语法排除在特定页面上运行的代码块?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

虽然current_page?代码适用于一个页面,这不是很容易扩展。

另一种方法是在应用程序控制器中添加一个方法,如下所示:

def disable_error_messages
  @disable_error_messages = true
end

然后在你的视图中你可以像这样测试:

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

通过这种方式,您可以在不同的页面上使用这段代码,而无需将其固定在特定的内容上。另一个优点是,当您重构名称时,这仍然有效。