2011-05-02 66 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