简体   繁体   中英

ActionController::MethodNotAllowed (Only get, put, and delete requests are allowed.)

I'm getting this error, ActionController::MethodNotAllowed (Only get, put, and delete requests are allowed.), when I try to submit a form. My route looks like this,

admin.resources :email_launcher

and this is my form_for,

  • form_for :email_launcher, :url => new_admin_email_launcher_path, :method => :get do |f|

This is not in a form but in the new view, and I'm using HAML. I've google searched all day on the error but never found anything of value. Any help would be great, thanks.

Here's my rake routes for admin_email_launcher

                          admin_email_launcher_index GET     /admin/email_launcher(.:format)                                                {:controller=>"admin/email_launcher", :action=>"index"}
                                                     POST    /admin/email_launcher(.:format)                                                {:controller=>"admin/email_launcher", :action=>"create"}
                            new_admin_email_launcher GET     /admin/email_launcher/new(.:format)                                            {:controller=>"admin/email_launcher", :action=>"new"}
                           edit_admin_email_launcher GET     /admin/email_launcher/:id/edit(.:format)                                       {:controller=>"admin/email_launcher", :action=>"edit"}
                                                     GET     /admin/email_launcher/:id(.:format)                                            {:controller=>"admin/email_launcher", :action=>"show"}
                                                     PUT     /admin/email_launcher/:id(.:format)                                            {:controller=>"admin/email_launcher", :action=>"update"}
                                                     DELETE  /admin/email_launcher/:id(.:format)                                            {:controller=>"admin/email_launcher", :action=>"destroy"}

routes.rb

namespace :admin do
  resources :email_launcher
end

admin/email_launchers_controller.rb

def new
  @email_launcher = EmailLauncher.new
end

admin/email_launcher/new

<%= form_for([:admin,@email_launcher]) do |f| %>
  ...
  <%= f.submit %>
<% end -%>

It will POST new email_launcher. Why do you need to GET the new action? You're already on the new page.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM