我有一个 Rails 应用程序,它可以通过 HTML 界面完成我需要它做的所有事情,现在我想使用一个 API 来提供对部分功能的访问。
我将如何使用 Routes.rb 将某些 API 控制器操作选择性地转发到另一个控制器的操作?
我尝试了以下方法:
我的常规控制器路由使用以下方法可以正常工作:
match 'stuff' => 'stuff#index'
get 'stuff/index'
get 'stuff/some_get_action'
post 'stuff/some_post_action'
但是当我尝试我的 API 时:
match 'api' => 'api#index'
match 'api/some_get_action' => 'stuff#some_get_action', :via => :get
match 'api/some_post_action' => 'stuff#some_post_action', :via => :post
或者...
match 'api' => 'api#index'
get 'api/some_get_action', :to => 'stuff#some_get_action'
post 'api/some_post_action', :to => 'stuff#some_post_action'
我得到一个错误。当我导航到 /api/index 以服务器包含用于测试 API URL 的表单的 HTML 页面时,url_for 会引发“路由错误”异常,提示“没有路由匹配...”。