My Brain is Open.

思いついたことを適当に列列と

rails

Mongoid 2.0.0.rc.4への更新で早速ハマる

Mongoid の正式版リリースに向けて、rc.4まで出ていたのでインストールしてみた。 その他、Rails3.0.3 もあったりしたので、Gemfileに以下を記述して bundle update 実行。 gem 'rails', '3.0.3' gem 'mongoid', '2.0.0.rc.4' 問題なく動くんだけど、一部ass…

Fakerモジュールが国際化対応

掲題のとおり、Fakerモジュールが0.9.0からI18Nに対応するようになったようですが、 default = "ja" になってたりすると、日本語の対応する文字列がないよ!って言われてテストが通らなくなっちゃう。というわけで、以下の指定を$RAILS_ROOT/Gemfileにしてア…

rvm+passenger3+nginxで作るRailsアプリケーションサーバ

rvm : Ruby Version Manager。コマンド一つでRubyバージョンを切り替えたりgemsetとかを切り替えたりできます。 nginx : 軽量WebProxy。HTTPサーバとしても使えます。 Passenger : mod_railsとも。Ruby on Railsをデプロイするときに超便利。 まぁ、ここを見…

references_oneの挙動

MongoDBの(埋め込みでない)参照を用いる references_one の挙動について。 class Person include Mongoid::Document field :name references_one :car end class Car include Mongoid::Document field :name referenced_in :person end モデルがこうなって…

埋め込みドキュメントの参照

Mongoidのドキュメントに微妙に書いてないのでメモ。 class Person include Mongoid::Document embeds_many :phones end class Phone include Mongoid::Document field :number embedded_in :person, :inverse_of => :phones end となっているときに、ある電…

Mongoidによるatomicな更新

MongoDBの特徴として、RDBMSではおおよそ用いられる以下の方法が使えない。 joinがない transactionがない そのかわり、次の特徴がある 埋め込みドキュメントが使える ドキュメントの各要素について、atomicな更新ができる 前者は例えば「紐付けて必ず参照す…

参照のあるモデルをviewから作る

ParentとChildの関係にあるモデルの作り方と簡単な使いかたを前回書いたが、では画面からそれらを登録していくにはどうすればいいか。考えられる方法はとりあえず二つ 作成済みのParentのページにChildを作るリンクを作成する Childを新規作成するページで既…

Mongoidのモデル間参照について備忘録

参照関係(Relation)を作るにはMongoidのモデルで以下を指定する。 references_one references_mary referenced_in 使い方に注意が必要で、例えば Parent, Childな関係の場合 class Parent include Mongoid::Document references_many :child end class Child…

Fabrication

FabricationというのがMongoidのドキュメントに対応しているらしいので、テストの為に使ってみる。とりあえず、次の事はわかった。 spec/fabricators/model_fabricator.rb で Fabricator(:model)を作成。 Fabricate(:model)でモデルを作成し保存。いろいろ試…

Mongoid generate

Mongoidでモデルを作るときにTimestampとか付ける方法について軽くメモ。 rails g model model_name [field:type [...] ] [--timestamps=true] [--parent=parent_model_name]

nokogiri 1.4.4でエラー

Ruby on Railsで業務アプリを構築中。将来必要になるだろうjpmobileを入れてみたところ、入るバージョン0.1.3ではwebratを使用しており、その依存関係でnokogiriがインストールされる。 開発マシンのMac OS X 10.6ではそこでエラーが発生。 mkmf.logはこんな…