読者です 読者をやめる 読者になる 読者になる

ActiveRecordをrails以外にも

Railsを使わないでActiveRecordを使うようなコードを書いてみました。

require 'rubygems' # 無くても良い場合有り
require 'active_record'


# データベースの設定
ActiveRecord::Base.establish_connection(
  :adapter => 'sqlite3',
  :encoding => 'utf8',
  :database => 'db.sqlite3'
)

# テーブル作成 railsのdb/migration/に近い書き方
ActiveRecord::Base.connection.create_table("foos") do |t| 
  t.string :hoge
  t.timestamps
end
# モデル設定 railsのapp/modelと全く同じ
class Foo < ActiveRecord::Base
  validates_uniqueness_of :hoge
end

 あとはFoo.newなどなど、お好きなように。
 ActiveRecord::Base.connectionが重要な感じです。ほかに使いそうなメソッドは
drop_table
table_exists?
あたりでしょうか。試してはいませんが、作成したテーブルを削除するのとテーブルが存在しているかどうかを見るメソッドだと思われます。
 このままだと2回目以降これを実行するとcreate_tableあたりでエラー吐きそうなので、ActiveRecord::Base.connection.table_exists?を挟んであげた方が良いかもしれません。


 今まで文字列のデータをためるのにファイルに書き込んでたのですが、ようやくデータベースが使えるようになりました。ActiveRecordのおかげでソースがキレイに。
 ネットでは良くRubyActiveRecord使うって記事を見ても、データベースの設定あたりで止まってるのが多い気がしましたが、何とかテーブルの作成をやってるものを見つけました。それが「初めてのRuby」だったりで驚いてたりします。それと意外とRubyクックブックにもActiveRecord関係の事が書いてあったりで読み返してたら理解が深まりました。ネットだけでは限界もありますね。