1

私はレールにかなり慣れていないので、基本的にユーザー登録フォームを作成したいと思います。

私は現在レール3.2.3を使用しています

基本的には、ユーザーの基本的なRESTルートの上にuser/registerのような基本的なルートを作りたいです。

これが私のroutes.rbです

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

そして、これが私のレーキルートです:

     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:3000 / user / registerを実行しようとすると、次のエラーが発生します。

{:action => "show"、:controller=>"user"}に一致するルートはありません

誰かがこれを手伝ってくれますか?

ありがとう!!

4

2 に答える 2

2

(これをコメントにしますが、コード例のマークアップが必要です。)

Rails 3.1.4を使用してルートを試しましたが、期待どおりに機能しました。

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

resources :users do
  collection do
    get :register
  end
end
于 2012-04-15T11:26:50.227 に答える
0

リソースのスペルを間違えましたか?通常は複数形ですusers。しかし、それは重要ではありません-それは単なる慣習です。重要なのは、おそらくというコントローラーを作成したのにUsersController、このコントローラーがリソース名に従わないということです。確認するか、名前を付けてくださいUserControllerただし、これは行わないことを強くお勧めします。/userパスが必要な場合:pathは、リソースでオプションを使用するだけで問題ありません。

resources :users, path: 'user' do

繰り返しますが、手遅れでない場合は、次のように使用します。

resources :users do

そして、あなたの登録パスはになります/users/register

于 2012-04-15T10:30:00.243 に答える