2012-07-20 58 views
4

嗨我正在开发一个简单的api红宝石使用intridea的葡萄。比方说,我们有这样的:我们如何将葡萄api资源分成多个文件?

class API_v1 < Grape::API 
    resource :foo do 
    end 

    resource :bar do 
    end 

end 

我怎么可能让这个为:foo:bar声明是在单独的文件?基本上,我想知道是否有可能有类似的轨道控制器,有多个文件来组织代码。

我希望有人能给我一个关于如何实现这一点的见解。

回答

8

Ruby有open classes,所以你应该能够简单地将它们移动到单独的文件中。

# foo.rb 
class API_v1 < Grape::API 
    resource :foo do 
    end 
end 

# bar.rb 
class API_v1 < Grape::API 
    resource :bar do 
    end 
end 
+0

究竟的基本知识,我需要!谢谢! – 2012-07-20 14:20:33

8

自述建议您使用mount

class Foo < Grape::API 
    resource :foo ... 
end 

class Bar < Grape::API 
    resource :bar ... 
end 

class API < Grape::API 
    mount Foo 
    mount Bar 
end