渲染特定的布局轨道

时间:2014-12-17 06:48:19

标签: ruby-on-rails

我正在尝试在未正确填充表单时呈现特定的布局:

在我的观点/布局中,我是:

  • application.html.erb
  • empty.html.erb

我的控制器:

class UsersController < ApplicationController

  def new
    @user = User.new
    render layout: "empty" # I wan to re-use this layout is the user is not been saved
  end

  def create
    @user = User.new(user_params)
    if @user.save
      redirect_to sign_in_path
    else
      render :new
    end
  end

  def user_params
    params.require(:user).permit!
  end
end

问题在于,当它不正确时它会重新呈现新动作但是它使用应用程序默认布局而不是其他布局文件: empty.html.erb < /强>

根据Rails guide lines它应该有用......但不适合我:(

感谢您的时间

1 个答案:

答案 0 :(得分:1)

def create方法中,render :new使用默认布局呈现new.html.erb视图。你可以尝试

 render layout: "empty", template: "users/new"

render仅根据给定的布局和模板“绘制”页面。

redirect_to "new"将发送new操作请求。