我的问题是,当我想在创建动作中的错误之后渲染新动作时,它将呈现而没有该动作的样式。
这是来自同一控制器的新操作和创建操作:
# GET /users/new
def new
@user = User.new
render layout: 'application'
respond_to do |format|
format.html{}
end
end
# POST /users
# POST /users.json
def create
@user = User.new(user_params)
@role = Role.new
@role.email = @user.email
@role.tipo = "user"
respond_to do |format|
if @role.save
#Not relevant
else
format.html { render :new }
format.json { render json: {:estado => "false"}, status: :unprocessable_entity }
end
end
end
我检测到的一件事是,当我从新操作提交表单时,它有和错误,那么网址是/ users。不应该是/ users / new?
答案 0 :(得分:0)
URL是/ users是rails框架中的标准。这是包含error_messages的POST #create路由。 问题在于你的新版本中的这一部分。行动:
render layout: 'application'
解决方案可以添加到您的“创建”中。行动:
render :new, :layout => 'application'
而不仅仅是渲染:新的。
所以,请改用:
format.html {render:new,:layout => '应用' }
它将呈现您的布局/应用程序。