[英]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
在app/views/layout/
创建名为welcome.html.erb
的自定义布局文件。 在那里写下你的布局代码(不要忘记yield
)。 由于rails会导致任何视图映射到WelcomeController
时使用Convention over Configuration
功能, welcome.html.erb
将覆盖默认的application.html.erb
布局。
如果要以不同方式命名自定义布局文件。 Rails也允许你这样做。 将您的布局文件命名为mylayout.html.erb
。 在WelcomeController
,添加以下代码
class WelcomeController <ApplicationController
布局'mylayout'
....
结束
如果您只想要特定操作的自定义布局,那么在最后一行操作中写入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.