2017-02-23 72 views
0

我的問題是,當我想要在創建操作中出現錯誤之後呈現新操作時,它將呈現沒有該操作的樣式。不渲染我指定的視圖

這是新的動作,並創建相同的控制器操作:

我發現
# 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 

的一件事是,當我從新的動作提交表單,它有錯,那麼該URL /用戶。它不應該是/ users/new?

回答

0

該URL是/ users在rails框架中是標準的。這是包含error_messages的POST #create路由。 問題是這部分在您的「新」行動:

render layout: 'application' 

一個解決方案可以是添加到您的「創造」的行動:代替

render :new, :layout => 'application' 

只呈現新的。

所以,用這個來代替:

format.html {渲染:新:佈局=> '應用'}

,它將使你的佈局/應用。

+0

它工作完美!謝謝! – thomas12