2011-09-23 6 views
1

まだRailsには新しく、Railsでのパスシステムの仕組みを理解するのは難しいです。私のroutes.rbをでRailsはルートパスをレンダリングします

私はサインアップのためのエイリアスを作成します。

match 'signup' => 'user#new' 
resource :user, :controller => 'user' 

アクションがあると/サインアップに行くには、正しい行動を示しています。ここまでは順調ですね。

サインアップフォームを送信すると、通常はPOSTで作成アクションが実行されます。そして、ここで私はどこにこだわっています。

サインアップに失敗した場合は、再度登録フォームを提示します。 1つのオプションは "新しい"レンダリングを行うことですが、/ userではなく/ userにユーザーを連れて行きます。

UserControllerで

class UserController < ApplicationController 

    def new 
    @user = User.new 
    end 


    def create 

    @user = User.new(params[:user]) 

    if @user.save 
     redirect_to root_url 
    else 
     render "new" 
    end 

    end 

end 

すべてのヘルプ感謝! -

UPDATE SOLUTIONが使用して、用/サインアップ

を追加しました2試合のルーティングをFOUND:オプションを使用して、アプリケーションがに投稿するときに知っている

match 'signup' => 'user#new', :as => :signup, :via => 'get' 
match 'signup' => 'user#create', :as => :signup, :via => 'post' 

この道を作成/それは実行する必要がありますサインアップしますhttpメソッドがgetのときは、新しいアクションを使います。

コントローラのマークアップは、上記と同じです。このような

答えて

0

てみてください、あなたに ":as" を追加ルート:

match 'signup' => 'user#new', :as => :signup 

してから、コントローラに

redirect_to signup_url 

を行います。

それは私のために働いた。私はまだなぜか分からない。他の人が説明をしているかもしれません。

+0

こんにちはHiasinho、あなたの答えをありがとう。それはサインアップにリダイレクトするときに機能します。しかし、私はフォームがあらかじめ入力されるようにユーザーオブジェクトを保持したいと考えています。あなたの答えは、しかし、正しい方向に私を得た。結果を追加しないでください。 –

関連する問題