ActiveRecordのプラグインテスト用クラスの作り方
こちらを見て触発されて書く。プラグイン用にARのクラスを定義する場合の話です。
http://blog.s21g.com/articles/418
アプローチが違うのはそもそも解決したい問題が違うからなので、ケースごとに両方使うといいと思います。私の場合はまるっとARクラスを定義したくなった、かつ元のRails環境は使いたくなかった(プラグインだしね)というのが理由です。
ここでのポイントはSQLite3の:memory:データベースを使っていることです。これを使うと一時ファイルも出なくてすっきり。これをvendor/plugins/my_plugin/spec/spec_helper.rbに置いて、それぞれのspecから読み込んでいます。
require 'rubygems' # これはいらないかも。なんで書いてあるんだっけ? RAILS_ROOT = File.expand_path("../../../../", File.dirname(__FILE__)) gem 'activerecord' require 'active_record' ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:") ActiveRecord::Schema.define(:version => 1) do create_table "todos" do |t| t.string "title" t.text "body" t.timestamps end end Todo = Class.new(ActiveRecord::Base)