在我的应用中,控制器的new
和edit
操作应该呈现不同的模板而不是默认布局,如下所示(它不是普通的rails应用程序,而是引擎)。
module Blorgh
class ArticlesController < ApplicationController
layout Blorgh.config.layout # Configured in initializer
...
# GET /articles/new
def new
@article = Article.new
render :new, layout: "blorgh/new"
end
# GET /articles/1/edit
def edit
render :edit, layout: "blorgh/edit"
end
...
end
end
它按预期工作,但是当通过在POST create
或PATCH update
页面中提交表单,new
或edit
操作验证失败时,它们将使用默认布局呈现
如何在这种情况下指定布局?
提前致谢。
答案 0 :(得分:3)
执行此操作的方式与new
和edit
操作相同:
def update
# ...
render :edit, layout: 'blorgh/edit'
end
def create
# ...
render :new, layout: 'blorgh/new'
end
顺便说一句,在您的new
和edit
操作中,您无需指定要手动呈现的模板。没关系,你可以:
def new
# ...
render layout: 'blorgh/new'
end
def edit
# ...
render layout: 'blorgh/edit'
end