如何使用post而不是#create将表单数据发送到#index?

时间:2015-03-28 10:44:26

标签: ruby-on-rails ruby-on-rails-4

我有资源路线设置:

resources :events

对于一种表单,我希望使用#index方法将数据发送到:post操作。 我怎么能这样做?

我尝试<%= form_tag url_for(controller: 'events', action: 'index'), method: :post,但仍然转到#create

2 个答案:

答案 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指南中的路由,这将为您节省大量的调试时间和头痛。