スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
新しい記事を書く事で広告が消せます。
【Ruby】ActiveRecordによるCRUDの実験(Read編)
前々回の記事でも紹介しましたが、Railsの規約上テーブルにあるデータは一意性をもつIDを持っていることからReadする場合このIDをもとにfindクラスメソッドによりデータを取得することができます。
テーブル構成、クラスなどは前回までと同じとします。
それでは早速Readの実験をしてみましょう。
下記のコードではIDが1のレコードの読み出しを行っています。
obj = Hoge.find(1)
puts obj.message
puts obj.priority
これは
puts Hoge.find(1).message
puts Hoge.find(1).priority
とも書くことができます。
また複数のIDを探すこともできます。
obj = Hoge.find([1, 3])
puts obj[0].message
puts obj[1].message
この場合IDが1と3のレコードを取得することになります。
もちろん
puts Hoge.find([1, 3])[0].message
puts Hoge.find([1, 3])[1].message
と書くこともできます。
puts Hoge.find([1, 3]).size
とするとfindした結果のレコード数が帰ってくることになります。
また
puts Hoge.find(:all).size
とするとテーブルに格納されているデータの総数が返ってくることになります。
Hoge.find(:all)
このクラスメソッド呼び出しは
select * from hoges;
というSQLを発行することになります。
さらにfindメソッドには検索オプションが用意されています。
:conditions
:offset
:limit
などがあります。
例えば
obj = Hoge.find(:all, :conditions => "priority = 100")
というのは
select * from hoges where priority = 100;
というSQL文に対応することになります。
検索オプションについてはいろいろあるようなので必要な時に調べて使ってみるといいと思います。
すみませんがよろしくお願いします。
テーブル構成、クラスなどは前回までと同じとします。
それでは早速Readの実験をしてみましょう。
下記のコードではIDが1のレコードの読み出しを行っています。
obj = Hoge.find(1)
puts obj.message
puts obj.priority
これは
puts Hoge.find(1).message
puts Hoge.find(1).priority
とも書くことができます。
また複数のIDを探すこともできます。
obj = Hoge.find([1, 3])
puts obj[0].message
puts obj[1].message
この場合IDが1と3のレコードを取得することになります。
もちろん
puts Hoge.find([1, 3])[0].message
puts Hoge.find([1, 3])[1].message
と書くこともできます。
puts Hoge.find([1, 3]).size
とするとfindした結果のレコード数が帰ってくることになります。
また
puts Hoge.find(:all).size
とするとテーブルに格納されているデータの総数が返ってくることになります。
Hoge.find(:all)
このクラスメソッド呼び出しは
select * from hoges;
というSQLを発行することになります。
さらにfindメソッドには検索オプションが用意されています。
:conditions
:offset
:limit
などがあります。
例えば
obj = Hoge.find(:all, :conditions => "priority = 100")
というのは
select * from hoges where priority = 100;
というSQL文に対応することになります。
検索オプションについてはいろいろあるようなので必要な時に調べて使ってみるといいと思います。
すみませんがよろしくお願いします。
スポンサーサイト