如何阻止 Rails 4 引擎中的部分内容?
Posted
技术标签:
【中文标题】如何阻止 Rails 4 引擎中的部分内容?【英文标题】:How to block a partial in Rails 4 engine? 【发布时间】:2016-09-04 10:37:51 【问题描述】:这个问题在其他地方得到了回答,(how to render partial on everything except a certain action) 但不适用于 Rails 引擎,在我的例子中,它共享应用程序控制器。我不希望我的部分“_homeHeader.html.erb”出现在引擎的页面上。引擎是速射的,一项调查。我试过了
<%=render :partial =>'layouts/homeHeader' unless controller => 'rapidfire' %
但这在任何地方都挡住了局部。头部包含一个login-logout,与引擎冲突。我还尝试在视图文件夹中放置一个虚拟的“_homeHeader.html.erb”以进行快速射击,但这没有用;我猜布局视图有优先权。
在 Michael 的建议下,我将语法修改为
<%= render :partial =>'/layouts/homeHeader' unless (controller.controller_name == "rapidfire/question_groups") %>
但它没有用。它仍然在登录时因此错误而窒息:
undefined local variable or method `destroy_user_session_path' for #<#<Class...
【问题讨论】:
【参考方案1】:这是unless
语句的语法问题。当您只需要一个简单的条件时,您正在比较一个哈希值。
试试这个:
<%= render :partial => "layouts/homeHeader" unless (controller.controller_name == "rapidfire") %>
请注意,我们使用推荐的方法来确定控制器的名称。有关更多信息,请参阅Can I get the name of the current controller in the view?。
【讨论】:
我修正了语法 没有迈克尔。我修改了我的帖子。谢谢 我认为这是一个不同的问题。它与原始问题“如何阻止 Rails 4 引擎中的部分”无关。如果您可以创建一个新问题并发布视图代码和部分代码,那将是处理新错误的好方法。 实际上,它应该阻止驻留在部分中的登录。所以我的任务是如何阻止部分。这是最初的错误,也是最初的问题。 问题中不包含这些信息。请将代码发布到您的 a) 控制器、b) 布局和 c) 视图中,以便我们查看发生了什么。以上是关于如何阻止 Rails 4 引擎中的部分内容?的主要内容,如果未能解决你的问题,请参考以下文章