ActiveRecordの哲学

今日の記事では、データベースツールであるActiveRecordと呼ばれるパターンを検討します。 すぐに専門家にそのようなメモを批判しないよう強くお願いします。 これらは興味の対象のみに書かれており、Ruby on Railsを使用したアジャイルWeb開発などの本を読むインセンティブを与えています。



ActiveRecordは、さらに正確にORMテクノロジーの実装と呼ばれます。

「ORM(オブジェクトリレーショナルマッピング)は、データベースをオブジェクト指向プログラミング言語の概念と接続し、「仮想オブジェクトデータベース」を作成するプログラミングテクノロジーです。



Ruby on RailsのActiveRecordを初めて会ったとき、私は本当に嬉しくなりました。 その実装は、RoR、CakePHP、CastleなどのさまざまなWebフレームワークで見つけることができます。 その考えは、各データベーステーブルクラスになり 、各テーブル このクラスのオブジェクトになることです。 ActiveRecordは、テーブル内の各列のデータを操作するためのメソッドを提供します。



たとえば、Habr-population ユーザーのデータを含むテーブルを作成し、次の方法でこれらの整然とした行を補充する新しい仲間についてのエントリを追加できます。

x = User.new

x.name = " "

x.login = "ivanov"

x.email = "no@reply.com"

x.homepage = "ivanov-thebest.com -- "

x.save







これらの魔法の操作は、次のリクエストを作成してデータベースに送信します。



INSERT INTO users (name, login, email, homepage) VALUES

\ (' ', 'ivanov', 'no@reply.com', 'ivanov-thebest.com -- ');








以下の方法でも、データベースからレコードを検索および選択できます。

#

f = User.find(:all)

# ivanov

search_str = "ivanov"

f = User.find(:first, :conditions => ["login = ?", search_str])







この手法により、SQLインジェクションから自動的に保護され(上記のバージョンではRailsによって行われます)、次のクエリも生成されます。



SELECT * FROM users WHERE login = 'ivanov'







Railsとその思いやりのある開発者のおかげで、上記はさらに簡単になります。



f = User.find_by_login("ivanov")







ここでは、非常に簡単な要約で、ギアが配置されています:)興味がある人は、 ActiveRecordのRelsoVikiページから始めて、(すぐに地獄に行きたい場合) Active Record Reference Documentationを開くことをお勧めします。 怠zyな人にはこのブログを読み続けることをお勧めします。ActiveRecordストーリーの利点は終わりません。 太字-継続を待たずに、試してみてください。



All Articles