我有资源路线设置:
resources :events
对于一种表单,我希望使用#index
方法将数据发送到:post
操作。
我怎么能这样做?
我尝试<%= form_tag url_for(controller: 'events', action: 'index'), method: :post
,但仍然转到#create
答案 0 :(得分:0)
简短回答:你不能用这条路线。
答案很长:
使用resources :events
后续路线为您定义:
GET /events events#index
GET /events/new events#new
POST /events events#create
GET /events/:id events#show
GET /events/:id/edit events#edit
PATCH/PUT /events/:id events#update
DELETE /events/:id events#destroy
因此index
请求无法访问POST
操作。
尝试这样做(使用f.e.自定义路由和resources :events
)会使帖子无法访问create
。
答案 1 :(得分:0)
您使用的那一刻
方法:: post
这意味着你在控制器中调用create方法,你无法做到这一点。就像@Esse向你展示了这些路线。 请阅读并理解rails指南中的路由,这将为您节省大量的调试时间和头痛。