Rom*_*man 4 api rest ruby-on-rails ruby-on-rails-3
我来自.Net MVC背景,希望在RoR中完成一个项目.具体来说,我正在开发一个REST API.
我将描述我的想法,希望你能引导我朝着正确的方向前进.我的api必须支持版本,而最强大的api版本方法是复制每个版本的代码.这样在一个版本中修复问题不会影响其他版本.在.NET MVC中执行此操作时,区域是您最好的朋友,因为每个版本的源文件可以通过使用区域进行细分.
所以我的问题是:在RoR中可以更改目录结构,以便进行此层次结构
app/
controllers
/v1
c1_controller.rb
c2_controller.rb
/v2
c1_controller.rb
c2_controller.rb
models/
/v1
m1.rb
m2.rb
/v2
m1.rb
m2.rb
views/
/v1
view1.html.erb
view2.html.erb
/v3
view1.html.erb
view2.html.erb
Run Code Online (Sandbox Code Playgroud)
可以重新安排到这个?
app/
v1/
controllers/
c1_controller.rb
c2_controller.rb
models/
m1.rb
m2.rb
views/
view1.html.erb
view2.html.erb
v2/
controllers/
c1_controller.rb
c2_controller.rb
models/
m1.rb
m2.rb
views/
view1.html.erb
view2.html.erb
Run Code Online (Sandbox Code Playgroud)
for*_*ker 10
查看此页面,它将为您提供有关Rails 3+项目的目录结构的一些见解:
http://edgeapi.rubyonrails.org/classes/Rails/Engine.html
从Rails 3.0开始,应用程序和引擎具有更灵活的路径配置(与之前的硬编码路径配置相反).这意味着您不需要将控制器放置在应用程序/控制器上,而是放在您认为方便的任何地方.
不要害怕它是关于Engines的事实,它在一开始就说明:每个Rails应用程序都是一个引擎.
UPDATE:从未有机会做我自己,但根据该网页,这个,你应该添加下列的东西进入你的config/application.rb内class Application < Rails::Application:
config.paths["app/controllers"] << "app/v1/controllers"
config.paths["app/controllers"] << "app/v2/controllers"
config.paths["app/controllers"] << "app/v3/controllers"
config.paths["app/models"] << "app/v1/models"
config.paths["app/models"] << "app/v2/models"
config.paths["app/models"] << "app/v3/models"
config.paths["app/views"] << "app/v1/views"
config.paths["app/views"] << "app/v2/views"
config.paths["app/views"] << "app/v3/views"
Run Code Online (Sandbox Code Playgroud)
以此项目为例:https://github.com/forker/multiversion
| 归档时间: |
|
| 查看次数: |
1364 次 |
| 最近记录: |