我收到以下错误
No route matches [POST] "/events"
使用此设置:
namespace :admin do
#...
resources :events
#...
end
class Admin::EventsController < Admin::AdminController
def index
@events = Event.all
end
def new
@event = Event.new
end
def create
@event = Event.new(params[:event])
if @event.save
redirect_to [:admin, admin_events_url]
else
render :action => "new"
end
end
def edit
@event = Event.find(params[:id])
end
end
<%= form_for([:admin, @event]) do |f| %>
我无法弄清楚我做错了什么!
当我在创建新事件条目时尝试POST数据时出现此错误
events/new
内的初始表单标记:
<form accept-charset="UTF-8" action="/admin/events" enctype="multipart/form-data" id="new_event" method="post">
rake routes
的结果:
admin_events GET /admin/events(.:format) admin/events#index
POST /admin/events(.:format) admin/events#create
使用/admin/events/
导航到GET
即可。
使用Ruby 1.9.3,Rails 3.2和Mongrel在Windows 8 x64位上运行正常。 不能在Linux服务器(主机)上使用Ruby 1.8.7,Rails 3.2和Phusion Passenger。
喔。如果您发送带有multipart/form-data
编码的表单,Rails似乎不是很高兴!删除文件上传修复了此问题。
答案 0 :(得分:2)
对于它的价值而言,关于你的控制器对我来说唯一可疑的是你的重定向。你应该能够做到:
redirect_to admin_events_path
答案 1 :(得分:1)
请尝试以这种方式设置表单:
form_for(@event, { url: admin_events_path, method: "POST" }) do