ROR 3 - 指定特定视图文件,忽略应用程序布局

Posted

技术标签:

【中文标题】ROR 3 - 指定特定视图文件,忽略应用程序布局【英文标题】:ROR 3 - Specifying specific view file, ignoring application layout 【发布时间】:2011-04-09 19:49:42 【问题描述】:

我想指定一个特定的视图文件来渲染,而不是与 REST 架构相对应的默认视图文件,这意味着在控制器中的“创建”功能之外,我想调用“新”视图文件 - 我相信可以使用:

def create
 .
 .
 render :new
end

但我还需要该视图文件来忽略 layouts/application.html.erb 中指定的跨站点布局?有没有办法做到这一点?

如果它不在“新”功能中,我可以声明“render :layout => false”.. 但我需要它在“创建”之外

有没有类似的东西:

render :new, layout => false

谢谢!

【问题讨论】:

【参考方案1】:

另一种方式是这样的:

render :template => :new, :layout => false

【讨论】:

【参考方案2】:

我不确定,必须尝试一下,但我认为你可以这样做:

layout 'application', :except => :action_name

排除控制器中的操作。

编辑:我刚试过,确实有效:)

【讨论】:

【参考方案3】:

你可以按照你说的去做

def create
  render :new, :layout => false
end

然后你可以像这样添加条件

def create
  render :new, :layout => user_signed_in?
end

或其他方式取决于您的需要

【讨论】:

以上是关于ROR 3 - 指定特定视图文件,忽略应用程序布局的主要内容,如果未能解决你的问题,请参考以下文章

RoR 样式表布局视图链接。 `:media => all` 是啥意思

如何忽略 SSDT 中的特定表/存储过程/视图

子视图控制器的视图忽略自动布局约束

加载视图的布局参数被忽略

10 Git中忽略特定的文件

10 Git中忽略特定的文件