2016-10-07 12 views
1

私のレールアプリには何か変なことがあります。フォーマットが間違っていると、特定のページにユーザーをリダイレクトしようとします。それは動作しますが、URLがビューに一致しません。rails - URLが表示と一致しません

私はrails g scaffold Userによって生成されたファイルを使用します。モデルファイルに特定の条件を追加して、ユーザー入力をチェックしてフォームの形式が正しいかどうかを確認し、そうでない場合は接続ビューにリダイレクトします。この中

def create 
    @user = User.new(user_params) 

    respond_to do |format| 
     if @user.save 
     format.html { redirect_to root_path, notice: 'User was successfully created.' } 
     format.json { render :show, status: :created, location: @user } 
     else 
     format.html { render :new } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

def create 
    @user = User.new(user_params) 

    respond_to do |format| 
     if @user.save 
     format.html { redirect_to root_path, notice: 'User was successfully created.' } 
     format.json { render :show, status: :created, location: @user } 
     else 
     format.html { render :template => 'pages/connection' } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

私が試した

私はので、私はこの(アプリ/コントローラ/ users_controller.rbを)回し2つの異なるコントローラ

の間に彼をリダイレクト私はよくページ/ connection.rbにリダイレクトされますが、私のブラウザのURLはですで、http://url:8080/connectionではありません。ですから、リフレッシュすると、ページ/ connection.rbユーザー/のままになります。

また、/user.rbのエラーメッセージは表示されません。

私のコードで何が間違っていますか?

+0

同じではありませんレンダリングとリダイレクト - あなたはあなたのビューでそれらを一覧表示しようとしていますか? – max

+0

実際に私はscaffoldで作成したファイルからいくつかのコンテンツを貼り付けてコピーします。私はuser.errors.full_messagesをコピーすることを忘れました – Tellimi

答えて

0

テンプレートページ/接続をレンダリングすると、そのユーザーを他のコントローラにリダイレクトしません。

format.html { render :template => 'pages/connection' } 

`また、モデル/ user.rbからのエラーメッセージがdisplayed.`ではありません

+0

はい、私は間違った語彙を使いました。私はなぜ私はレンダリングが必要なの投稿要求をキャッチする必要があるので、私はredirect_toを使用したくない – Tellimi

+0

@ Tellimi申し訳ありません - あなたの質問がその場合にはわかりません。あなたは何を達成しようとしていますか?レンダリングを使用しても、ユーザーのURLは更新されません。これは正しい動作です。それはリダイレクトによってのみ達成されます。 –

+0

私はそれがうまくいく方法を理解しています。私は今、私のプロジェクトの同じポイントにいません。私はより正確になるでしょう。私はビュー '接続'で自分のユーザーを送信したい。私はモデルからエラーメッセージを送信する必要がありますので、レンダリングを使用する必要があります。レンダリングを使用する場合、URLは/ usersです。 redirect_toを使用すると、メッセージは表示されません。 URL /接続を使用してビュー接続にユーザーを送信できますが、それでもエラーメッセージが表示されますか? – Tellimi

関連する問題