我知道默认情况下,Rails中的视图使用application.html.erb
中提供的模板。但是,有一种观点我不想使用application.html.erb
中提供的模板,而是在该视图中编写所有HTML。这可能吗?
答案 0 :(得分:8)
在控制器操作结束时,添加:
render :layout => false
答案 1 :(得分:4)
针对具体行动:
class SomeController < ApplicationController
def my_custom_action
render layout: false
end
end
答案 2 :(得分:2)
您可以使用自定义布局实现相同的目标。
e.g。对于WelcomeController
在welcome.html.erb
中创建名为app/views/layout/
的自定义布局文件。
在那里写下你的布局代码(不要忘记yield
)。当rails将呈现映射到Convention over Configuration
的任何视图呈现时,由于rails WelcomeController
功能,welcome.html.erb
将覆盖默认的application.html.erb
布局。
如果要以不同方式命名自定义布局文件。 Rails也允许你这样做。将您的布局文件命名为mylayout.html.erb
。
在WelcomeController
中,添加以下代码
类WelcomeController&lt; ApplicationController中
布局'mylayout'
...
端
如果您只想为特定操作设置自定义布局,请在最后一行记录render layout: 'mylayout'
答案 3 :(得分:1)
当然,在你的行动中做这样的事情:
def action
render :layout => false
end
这假设您的控制器中还有其他操作需要布局。否则,我会在控制器根目录中指定layout false
。
如果你有多个不需要布局的动作,我相信你可以做到
layout false, :only => [ :action1, :action2 ]
答案 4 :(得分:0)
您必须确保您的控制器继承自ApplicationController
class MyCustomController < ApplicationController