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无法实现此功能?