2012-04-15 12 views
1

私はかなり新しいレールです。基本的にはユーザー登録フォームを作りたいと思っています。Railsのルートが表示されるアクション

私は現在、レール3.2.3

基本的に私は、ユーザー/ユーザーのための基本的なRESTルートの上に登録などの基本的なルートを作りたいを使用しています。ここで

resources :user do 
    collection do 
    get 'register' 
    end 
end 

そして、ここでは私のすくい経路である私のroutes.rbをしている:

 register_user_index GET /user/register(.:format) user#register 
    user_index GET /user(.:format)   user#index 
       POST /user(.:format)   user#create 
     new_user GET /user/new(.:format)  user#new 
     edit_user GET /user/:id/edit(.:format) user#edit 
      user GET /user/:id(.:format)  user#show 
       PUT /user/:id(.:format)  user#update 
       DELETE /user/:id(.:format)  user#destroy 

私の理解から、登録ユーザーはショーの上にあることから、それは最初のレジスタと一致する必要がありますショーに行く前に。しかし

、私がやろうlocalhostを:

Noルートマッチ{::アクション=> "ショー"、:コントローラ=> "ユーザー"}

3000 /ユーザー/それは私にこのエラーを与え、登録

誰か助けてもらえますか?

ありがとうございます!

+0

ユーザー#登録のビューはまだありますか?もしそうなら、コンテンツを投稿できますか? –

+0

どこかにタイプミスがないのは確かですか? 'register'ルートを逃したとしても、なぜあなたは' show'ルートを持っていないと言いますか?それはすぐそこです!他のルートに問題がありますか? – tsherif

答えて

1

(私はこのコメントになるだろうが、私はコード例のマークアップを必要とする。)

私はRailsの3.1.4を使用してルートを試してみましたが、あなたが期待されるようにそれが働きました。

記号の代わりに文字列を使用しています。より標準的な方法は次のとおりです。

resources :users do 
    collection do 
    get :register 
    end 
end 
+0

また、シンボルを使って変更しました。私はそれが何か変わるかどうか分からない。 – user1334345

0

リソースのスペルを間違えましたか?通常は複数、usersです。しかしそれはポイントではありません - それは単なる大会です。要は、UsersControllerというコントローラーを作成したことがあり、このコントローラーが自分のリソース名に従わないということです。それを確認するか、名前をUserControllerにします。再び

resources :users, path: 'user' do 

、手遅れではない場合、:あなたは/userパスが必要な場合は、ちょうどあなたのリソースにオプション:pathを使用すると、あなたは大丈夫です - しかし、私は強くはそれをしないにあなたを推薦しますただ使用する:

resources :users do 

登録パスはです。

+0

ありがとうございます!出来た!!大事なことだと思う。 – user1334345

関連する問題