2011-05-02 65 views
1

我正在rails中構建api,並且我被告知需要對網站進行範圍限定,使其具有版本。只有數字的Rails命名空間

類似於/1.0/do_something

從我讀過,我通過製作routes.rb中,看起來像下面這樣做:

API::Application.routes.draw do 
    scope :path => "1.0", :module => "1.0" do 
     post "do_something" => "controller#method" 

     # Everything else. Glob is saved in params[:r] 
     match '*r', :to => 'errors#e404' 
    end 
end 

但是,當我rake routes,我得到以下錯誤:

rake aborted! 
missing :action 

我在做什麼錯?

+0

不是你在找什麼,但[葡萄](https://github.com/intridea/grape)可能會讓事情變得更簡單。 – 2011-05-02 04:48:18

回答

2

由於顯而易見的原因,你不能有一個名爲「1.0」的模塊。考慮改用這個V1

+1

如果可以的話,引用它會是一個問題。 '1.0.do_method'實際上會調用'Float#do_method' – RyanScottLewis 2011-05-02 06:22:05

+0

如果我需要將該URL映射到模塊會怎麼樣?我對rails比較陌生。 – icco 2011-05-02 18:21:50

+1

@icco:然後你會做'scope:path =>「1.0」,:module =>「V1」do'。簡單。 – 2011-05-04 12:02:42