每天一剂Rails良药之Rails Without A Database

阅读更多
一般Rails项目都默认为需要数据库存储支持,但是当我们不需要数据库时,如基于外部WebService的项目和一些测试时,我们可以通过一些小技巧来达到解除数据库依赖的目的

1,修改test_helper.rb
ENV["RAILS_ENV"] = "test"
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
require 'application'
require 'test/unit'
require 'action_controller/test_process'
require 'action_web_service/test_invoke'
require 'breakpoint'

然后我们直接运行ruby test/unit | functional/xxx_test.rb即可

2,在lib/tasks/里写一个clear_database_prerequisites.rake来解除数据库依赖
[:test_units, :test_functional, :recent].each do |name|
  Rake::Task.lookup(name).prerequisites.clear
end

这样我们就可以调用Rails内建的test_units(),test_functional()和recent()这三个tasks而不需要数据了
(但是Rails报Rake::Task没有lookup方法的错误)

3,config/environment.rb里精简Rails模块来节省内存资源和提高性能
# Skip frameworks you're not going to use
# config.frameworks -= [:action_web_service, :action_mailer ]

我们把:active_record添加到上述列表即可,这种方式应该说是最简单的
(但是Rails报"uninitialized constant ActiveRecord"的错误)

每天坚持写博客,好记性不如烂笔头,学有所思,用文字记录学习过程的所思所得。
家里的adsl跟公司的8M铁通差远了,刚才写好的博客正准备发表,结果蛙眼挂了,只好重写。虽说铁通也不怎么样。

你可能感兴趣的:(Rails,WebService,Ruby,ActiveRecord,Web)