不呈现我指定的视图

时间:2017-02-23 15:56:59

标签: ruby-on-rails

我的问题是,当我想在创建动作中的错误之后渲染新动作时,它将呈现而没有该动作的样式。

这是来自同一控制器的新操作和创建操作:

  # 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?

1 个答案:

答案 0 :(得分:0)

URL是/ users是rails框架中的标准。这是包含error_messages的POST #create路由。 问题在于你的新版本中的这一部分。行动:

render layout: 'application'

解决方案可以添加到您的“创建”中。行动:

render :new, :layout => 'application'

而不仅仅是渲染:新的。

所以,请改用:

format.html {render:new,:layout => '应用' }

它将呈现您的布局/应用程序。