0

Deviseアプリに新しいメールアドレス、パスワード、パスワードの確認を入力します。実際にサインアップしようとすると、次のエラーが発生します。

RoutingError

No route matches [POST] "/users/sign_up"

rake routes利用可能なルートの詳細については、実行してみてください。

new_registration_pathそれはあなたをに連れて行くように見えますusers/sign_up、それはそれが知りません(少なくともPOSTを取得するとき)。これを認識させるにはどうすればよいですか?

以下は、関連するコードの一部です。


これが(おそらく)関連性がありますroutes.rb

devise_for :users
resources :users

これがの出力ですrake routes

        new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
            user_session POST   /users/sign_in(.:format)       devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
           user_password POST   /users/password(.:format)      devise/passwords#create
       new_user_password GET    /users/password/new(.:format)  devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format) devise/passwords#edit
                         PUT    /users/password(.:format)      devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
       user_registration POST   /users(.:format)               devise/registrations#create
   new_user_registration GET    /users/sign_up(.:format)       devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
                         PUT    /users(.:format)               devise/registrations#update
                         DELETE /users(.:format)               devise/registrations#destroy
       static_pages_home GET    /static_pages/home(.:format)   static_pages#home
                   users GET    /users(.:format)               users#index
                         POST   /users(.:format)               users#create
                new_user GET    /users/new(.:format)           users#new
               edit_user GET    /users/:id/edit(.:format)      users#edit
                    user GET    /users/:id(.:format)           users#show
                         PUT    /users/:id(.:format)           users#update
                         DELETE /users/:id(.:format)           users#destroy
              businesses GET    /businesses(.:format)          businesses#index
                         POST   /businesses(.:format)          businesses#create
            new_business GET    /businesses/new(.:format)      businesses#new
         ed  it_business GET    /businesses/:id/edit(.:format) businesses#edit
                business GET    /businesses/:id(.:format)      businesses#show
                         PUT    /businesses/:id(.:format)      businesses#update
                         DELETE /businesses/:id(.:format)      businesses#destroy
                    root        /                              static_pages#home

これがregistrations/new.html.erbのフォームです。

<%= form_for(resource, :as => resource_name, :url => new_registration_path(resource_name)) do |f| %>
    ...
<% end %>
4

1 に答える 1

3

サインアップはへのリクエストで行われるので、registration_path代わりに使うべきだと思います。new_registration_pathPOST/users

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
   ...
<% end %>
于 2013-03-21T20:44:07.293 に答える