ようへいの日々精進XP

よかろうもん

2018 年 02 月 11 日(日)

佐世保にて

  • 奥さんの実家のお墓参り, めちゃくちゃ寒かったけど, お墓で手を合わせたら不思議と温かい気持ちになった
  • お昼ごはんまでご馳走になって佐世保を後にした

洗車

駐めているだけでなぜか汚れるという駐車場...とにかく洗って上げたかったので, 佐世保の帰りに太宰府インターで降りていつもの洗車場で.

洗車、冷たすぎ。

雪がすごい

夕飯を名島本陣で済ませた後, お風呂に入ったりしてうだうだしていたら外から雨音が聞こえてきたので外を見ると...

香椎オフィス近辺の様子です。ご査収のほどよろしくお願いします。

今日のるびぃ ~ Active Record に興奮した ~

参考

railsguides.jp

www.oreilly.co.jp

サンプル

SQLite3 をデータベースとして利用する場合, 以下のように書くだけでデータベースの接続, データの insert と select を良しなに取り計らってくれる.

require 'active_record'

ActiveRecord::Base.establish_connection :adapter => 'sqlite3',
                                        :database => 'dbfile'
class User < ActiveRecord::Base
end

user = User.new
p user.valid?
user.id = 1
user.name = 'かっぱ'
user.save!

user = User.first
p user.id
p user.name

動かしてみると...

$ bundle exec ruby sample.rb 
true
1
"かっぱ"

データベースを意識した実装は殆ど無いのに, こんなにも簡単にデータベースの操作が出来てしまうのに興奮してしまう.

Active Record の規約

データベースをほぼ意識することなく, 最小限のコードで操作を可能にする為, Active Record にはクラス名、テーブル名, スキーマ名に一定のルールがある.

railsguides.jp

例えば, テーブル名について, 上記のドキュメントより抜粋させて頂く.

データベースのテーブル名を見つけるときに、モデルのクラス名を複数形にしたものを使用します。つまり、Bookというモデルクラスがある場合、これに対応するデータベースのテーブルは複数形のbooksになります。

  • データベースのテーブル - 複数形であり、語はアンダースコアで区切られる (例: book_clubs)
  • モデルのクラス - 単数形であり、語頭を大文字にする

例えば, 先ほどのサンプルコードの場合...

class User < ActiveRecord::Base
end

ActiveRecord::Base を継承して User クラスを作成しているが, この場合のテーブル名は users である必要がある.

ふむふむ.