Hicham
Hicham

Reputation: 1

Routing Error | No route matches [POST] "/subscriptions/create"

I'm new to Ruby on Rails and I'm working on an application that contains form used to create a new nominee ( store it in the database) I get the problem with this instruction of the form:

<%= form_for :subscription, :url => {:controller => "subscriptions", :action => "create"} do |f| %>

this is the error:

Routing Error
No route matches [POST] "/subscriptions/create"

rake routes

  Prefix Verb       URI Pattern                               Controller#Action
          subscriptions_create GET        /subscriptions/create(.:format)           subscriptions#create
           subscriptions_index GET        /subscriptions/index(.:format)            subscriptions#index
                articles_index GET        /articles/index(.:format)                 articles#index
        new_admin_user_session GET        /admin/login(.:format)                    active_admin/devise/sessions#new
            admin_user_session POST       /admin/login(.:format)                    active_admin/devise/sessions#create
    destroy_admin_user_session DELETE|GET /admin/logout(.:format)                   active_admin/devise/sessions#destroy
           admin_user_password POST       /admin/password(.:format)                 active_admin/devise/passwords#create
       new_admin_user_password GET        /admin/password/new(.:format)             active_admin/devise/passwords#new
      edit_admin_user_password GET        /admin/password/edit(.:format)            active_admin/devise/passwords#edit
                               PATCH      /admin/password(.:format)                 active_admin/devise/passwords#update
                               PUT        /admin/password(.:format)                 active_admin/devise/passwords#update
                    admin_root GET        /admin(.:format)                          admin/dashboard#index
batch_action_admin_admin_users POST       /admin/admin_users/batch_action(.:format) admin/admin_users#batch_action
             admin_admin_users GET        /admin/admin_users(.:format)              admin/admin_users#index
                               POST       /admin/admin_users(.:format)              admin/admin_users#create
          new_admin_admin_user GET        /admin/admin_users/new(.:format)          admin/admin_users#new
         edit_admin_admin_user GET        /admin/admin_users/:id/edit(.:format)     admin/admin_users#edit
              admin_admin_user GET        /admin/admin_users/:id(.:format)          admin/admin_users#show
                               PATCH      /admin/admin_users/:id(.:format)          admin/admin_users#update
                               PUT        /admin/admin_users/:id(.:format)          admin/admin_users#update
                               DELETE     /admin/admin_users/:id(.:format)          admin/admin_users#destroy
   batch_action_admin_contacts POST       /admin/contacts/batch_action(.:format)    admin/contacts#batch_action
                admin_contacts GET        /admin/contacts(.:format)                 admin/contacts#index
   POST       /admin/contacts(.:format)                 admin/contacts#create
             new_admin_contact GET        /admin/contacts/new(.:format)             admin/contacts#new
            edit_admin_contact GET        /admin/contacts/:id/edit(.:format)        admin/contacts#edit
                 admin_contact GET        /admin/contacts/:id(.:format)             admin/contacts#show
                               PATCH      /admin/contacts/:id(.:format)             admin/contacts#update
                               PUT        /admin/contacts/:id(.:format)             admin/contacts#update
                               DELETE     /admin/contacts/:id(.:format)             admin/contacts#destroy
               admin_dashboard GET        /admin/dashboard(.:format)                admin/dashboard#index
                admin_comments GET        /admin/comments(.:format)                 admin/comments#index
                               POST       /admin/comments(.:format)                 admin/comments#create
                 admin_comment GET        /admin/comments/:id(.:format)             admin/comments#show
                      articles GET        /articles(.:format)                       articles#index
                               POST       /articles(.:format)                       articles#create
                   new_article GET        /articles/new(.:format)                   articles#new
                  edit_article GET        /articles/:id/edit(.:format)              articles#edit
                       article GET        /articles/:id(.:format)                   articles#show
                               PATCH      /articles/:id(.:format)                   articles#update
                               PUT        /articles/:id(.:format)                   articles#update
                               DELETE     /articles/:id(.:format)                   articles#destroy
               welcome_sponsor GET        /welcome/sponsor(.:format)                welcome#sponsor
                 welcome_photo GET        /welcome/photo(.:format)                  welcome#photo
                 welcome_index GET        /welcome/index(.:format)                  welcome#index
                          root GET        /                                         welcome#index

best regard

Upvotes: 0

Views: 645

Answers (2)

atw
atw

Reputation: 5830

As you can see from the lines below:

Prefix Verb       URI Pattern                               Controller#Action
subscriptions_create GET        /subscriptions/create(.:format)           subscriptions#create

you have got a route for subscriptions_create but it needs to be POST instead of GET. Simply update this route in your routes.rb file in your config folder to be a POST instead of a GET.

Upvotes: 2

dostu
dostu

Reputation: 1518

As you can see from this line subscriptions_create GET /subscriptions/create(.:format), that route is only available when using GET HTTP method.

You need to change your routes.rb file for subscriptions to accept POST instead of GET. The easiest way would be to add resources :subscriptions, which will add all standard CRUD routes for resource.

Upvotes: 1

Related Questions