我有兩個API,我試圖在我的Rails應用程序中安裝 - 一個名爲'v1',另一個名爲'twilio'。每個API都由多個文件組成,所以我希望每個文件都有自己的文件夾。在我的app/api目錄中,我有兩個文件夾 - 'v1'和'twilio' - 以及一個名爲'api.rb'的文件,我試圖用它來安裝這兩個api。它的內容是:在Rails中安裝多個Grape API
module API
class V1 < Grape::API
prefix "api"
format :json
mount API::Root => '/v1'
end
class Twilio < Grape::API
prefix "twilio"
format :xml
mount API::Twilio_API => '/twilio'
end
end
在「V1」目錄中,我有一個叫做「root.rb」文件開頭如下:
module API
class Root < Grape::API
version 'v1', :using => :header
...
,並在「twilio」目錄,我有一個名爲 'twilio_api.rb' 的文件,開始表現爲:
module API
class Twilio_API < Grape::API
version 'v1', :using => :header
...
我的路線文件有:
mount API::V1 => "/"
mount API::Twilio => "/"
當我開始我的Rails服務器,我得到的錯誤:
`load_missing_constant': Expected [My rails app]/app/api/v1/root.rb to define Root (LoadError)
我不明白這一點,因爲root.rb肯定不會定義根類。任何幫助將非常感激。
我試着改變我的掛載調用以遵循模式'mount :: API :: V1 :: Root',並用名稱'V1'和'TWILIO在父模塊內部包裝'Root'和'Twilio'類定義'分別爲了匹配目錄結構,但我仍然得到相同的錯誤。 – Andrew 2013-05-02 22:55:09