2013-10-02 27 views
0

我正在使用Rails 4.0,並試圖獲得以下路由:Rails 4.0 config/routes.rb問題想要:http:// localhost/api/v1 /:controller /:id

class Api::V1::MyController 
    def get # maps to http GET 
    end 

    def post # maps to http POST 
    end 

    ... Same for PATCH PUT DELETE 
end 

我找不出正確的routes.rb。

我嘗試幾種變化:

namespace :api do 
    namespace :v1 do 
    match ':controller(/:action(/:id))', via: [:get, :put, :post, :patch, :delete] 
    end 
end 

結果錯誤:

match '/api/v1/:controller(/:action(/:id))', via: [:get, :put, :post, :patch, :delete] 

結果錯誤 「控制器段是不是一個命名空間塊內允許」:「在自動加載常量時檢測到循環依賴性ApiController「

T他是我想的網址是什麼樣子:

http://www.localhost.com/api/v1/my_controller/1234 
or eventually: 
http://www.localhost.com/api/v1/photos/1234 
http://www.localhost.com/api/v1/users1234 
http://www.localhost.com/api/v1/albums/1234 
http://www.localhost.com/api/v1/puppies/1234 
+0

你想讓url看起來像什麼? – dax

+0

@dax重新解決了一個問題,我已經更新了它 - ty – Daniel

回答

1

路線一般不與控制器名稱爲PARAM做 - 他們也許還可以,但我真的不知道。我想試試this

namespace :api do 
    namespace :v1 do 
    resources :photos, :puppies, :socks, :bits_of_string 
    end 
end 
+0

我試圖按照指南,建議以http://www.localhost.com/resource/:id的方式使用HTTP動詞並用動詞來描述必要的動作,而不是使用動作。該指南是由apigee – Daniel

+0

以...的方式?你可以使用'http動詞',但如果你正在創建特定的動作,你只需要它們。'資源:x'創建所有的資源,包含給定模型的所有動作 – dax

+0

哦。面對掌。我看不到樹林。 – Daniel