Rails 3 / rspec / mongo_mapper -> MongoHQ な設定のためもメモ
今後も使いそうなので、メモしておこう
必要な gem は先に gem install でいれておく
> gem update
アプリケーション内の各ファイルを以下のように変更
Gemfile
require 'rubygems' require 'mongo' source 'http://gemcutter.org' gem 'rails', '3.0.3' gem 'rails3-generators' gem 'mongo_mapper' group :test do gem 'rspec' gem 'rspec-rails', ">= 2.0.0.beta" end
config/initializers/mongo.rb
MongoMapper.connection = Mongo::Connection.new('flame.mongohq.com', port, { :logger => Rails.logger }) MongoMapper.database = "dbname-#{Rails.env}" MongoMapper.database.authenticate('user', 'pass') if defined?(PhusionPassenger) PhusionPassenger.on_event(:starting_worker_process) do |forked| MongoMapper.connection.connect if forked end end
config/application.rb
require File.expand_path('../boot', __FILE__) require "action_controller/railtie" require "action_mailer/railtie" require "active_resource/railtie" require "rails/test_unit/railtie" Bundler.require(:default, Rails.env) if defined?(Bundler) module MyApplication class Application < Rails::Application config.encoding = "utf-8" config.filter_parameters += [:password] config.generators do |g| g.orm :mongo_mapper g.test_framework :rspec end end end
lib/tasks/mongo.rake
namespace :db do namespace :test do task :prepare do # Stub out for MongoDB end end end
> bundle install > bundle update > rails g spec:install
とかすると、設定完了
> rails g model user
なんかで一通りのことはできそう