Ruby on rails 如何在Rails的REST基础上实现不同的http方法和自己定义的url匹配不同的操作

Ruby on rails 如何在Rails的REST基础上实现不同的http方法和自己定义的url匹配不同的操作,ruby-on-rails,rest,Ruby On Rails,Rest,现在,我有: map.resources :questions, :collection => { :query_by_student => :get } 这符合: query_by_student_questions GET /questions/query_by_student(.:format) {:controller=>"questions", :action=>"query_by_student"} 我想在同一个url中添加一个“POST”请求:/ques

现在,我有:

map.resources :questions, :collection => {
:query_by_student => :get
}
这符合:

query_by_student_questions GET /questions/query_by_student(.:format)
{:controller=>"questions", :action=>"query_by_student"}
我想在同一个url中添加一个“POST”请求:
/questions/query\u by\u student
,但操作应该是
“POST\u by\u student”

我该怎么办

怎么在轨道的休息基础上对自己定义的网址实现不同http方法对应不同行动

我现在有这:

map.resources :questions, :collection => {
:query_by_student => :get
}
对应路由信息:

query_by_student_questions GET /questions/query_by_student(.:format)
{:controller=>"questions", :action=>"query_by_student"}
我想加一个邮递请求,同样到<代码>/学生提问/查询但是行动为<代码>学生发帖


怎么写?

我没有测试应用程序,但是使用rails 2.2,你可以试试

map.resources :questions, :collection => {
   :query_by_student => [:get, :post]
}
看看它是什么样子

否则,您可能可以通过以下方式手动执行

map.connect '/questions/query_by_student', :conditions => { :method => :get }, :controller => 'questions', :action => 'query_by_student'
map.connect '/questions/query_by_student', :conditions => { :method => :post }, :controller => 'questions', :action => 'post_by_student'

我没有尝试过,但我不认为这会导致两种不同的行为。第二种方式意味着map.resources无法实现此功能?