ARを読もうとする試み establish_connection
お約束のestablish_connectionメソッドあたりの感想。
require 'rubygems' require_gem 'activerecord' ActiveRecord::Base.establish_connection( :adapter => 'mysql', :host => 'localhost', :username => 'rails', :password => '', :database => 'rubima' )
こんな感じであります。
ActiveSupportによる拡張メソッドが随所にみられる
require_library_or_gemとかsymbolize_keysとか
このActiveSupportの拡張がなにかとつまづきの元。
これが醍醐味なんだろうけど。。
組み込みのメソッドなのかActiveSupportなのかパッと見ではわからん。
こんなん覚えられるんか??
まあ組み込みのメソッドを知らないというのもあり。
active_record.rbでやってることの確認
activerecordをrequireしたときにロードされるのはactive_record.rb
active_supportをrequire
いろんなモジュールをrequire
技を覚えまくる(舞波)
ActiveRecord::Baseクラスの定義時(class_eval実行時)にいろんなモジュール
をincludeしてmixin、(モジュール側で)extendしたりもしてる
いろんなデータベースへのadapterをrequire
ほかにもrequire
require先にもActiveRecord::Baseがいる。
mysql_adapter.rbの中とか。
あーこういうとこでクラスメソッド定義しとくと、requireでクラスメソッドを増やすこともできるのか。
なんか節操ない感じもするけど、なんかルールはあるんだろうか。
ActiveRecord::Baseってめちゃめちゃいろんな技持ってるなあ。
データベースに接続するconnectionメソッドはどこにつながってる?
establish_connectionメソッドではデータベースに接続していない。
適当な設定でestablish_connectionを呼んでもエラーにならず、
そのあとでActiveRecord::Base.connectionを呼んだときにエラーになるかられす。
abstructとかいう文字が垣間見られてるからそのあたりなのだろうナー。