【问题标题】:Rails 3.2 layout: "except" not workingRails 3.2 布局:“除外”不起作用
【发布时间】:2013-06-05 00:06:53
【问题描述】:

我有一个 Root 控制器,我想对用户进行身份验证,因此我在 Root 的布局中添加了身份验证代码。我想从布局中排除索引和登录页面,所以我添加了:

layout 'roots', :except =>  ['index', 'login']

在我的 RootsController 中。但是,当我打开索引和登录页面时,布局仍然出现。我尝试使用 :only 来包含我想要包含的所有页面,但同样,布局已应用于所有页面。

我真的很困惑。谢谢!

【问题讨论】:

  • 当我在索引和登录方法中添加 render :layout => false 时问题解决了。但我还是不明白为什么我上面的代码不起作用。

标签: ruby-on-rails-3


【解决方案1】:

它应该工作。您是否尝试过在 format.html 块中传递 layout 选项?

例如:

format.html { :layout => 'roots' }

【讨论】:

  • 除了索引和登录之外,我可以将此代码添加到每个单独的页面中,但这会非常乏味且不干燥。我真正想做的是从使用布局中排除索引和登录页面,我只是不知道为什么我的代码不起作用..
  • @Lee7355512727:是的,你是对的,在每个方法中添加layout 不会是一种 DRY[ish] 的做事方式。如果您在format.html 中添加:layout,您能否确认您的代码有效?如果是,那么为什么它不能以 Rails 标准方式工作就有点模棱两可了。
猜你喜欢
  • 2012-04-20
  • 1970-01-01
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 2012-01-19
  • 2019-02-12
相关资源
最近更新 更多