2017-02-23 5 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であることは、レールフレームワークの標準です。これは、error_messagesを含むPOST #createルートです。 問題は、あなたの「新しい」アクションではこの部分である:

render :new, :layout => 'application' 

だけではなく、レンダリング:新しい

render layout: 'application' 

ソリューションは、あなたの「作成」アクションに追加することができます。

ので、代わりにこれを使用する:

format.html {レンダリング:新しい、:レイアウト=> 'アプリケーション'}

をそれはあなたのレイアウト/アプリケーションをレンダリングします。

+0

これは完璧に機能しました!ありがとうございました! – thomas12

関連する問題