繁体   English   中英

Rails不使用application.html.erb

[英]Rails not use application.html.erb

我知道默认情况下,Rails中的视图使用application.html.erb提供的模板。 但是,有一种观点我不想使用application.html.erb提供的模板,而是在该视图中编写所有HTML。 这可能吗?

在控制器操作结束时,添加:

render :layout => false

对于特定的操作:

class SomeController < ApplicationController
  def my_custom_action
    render layout: false
  end
end

您可以使用自定义布局实现相同的功能。

例如,对于WelcomeController

  1. app/views/layout/创建名为welcome.html.erb的自定义布局文件。 在那里写下你的布局代码(不要忘记yield )。 由于rails会导致任何视图映射到WelcomeController时使用Convention over Configuration功能, welcome.html.erb将覆盖默认的application.html.erb布局。

  2. 如果要以不同方式命名自定义布局文件。 Rails也允许你这样做。 将您的布​​局文件命名为mylayout.html.erb WelcomeController ,添加以下代码

    class WelcomeController <ApplicationController

    布局'mylayout'

    ....

    结束

  3. 如果您只想要特定操作的自定义布局,那么在最后一行操作中写入render layout: 'mylayout'

当然,在你的行动中做这样的事情:

def action
  render :layout => false
end

这假设您的控制器中还有其他操作需要布局。 否则,我会在控制器根目录中指定layout false

如果你有多个不需要布局的动作,我相信你可以做到

layout false, :only => [ :action1, :action2 ]

您必须确保您的控制器继承自ApplicationController

class MyCustomController < ApplicationController

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM