2007年4月13日金曜日

ActiveRecordオブジェクトの検索

ActiveRecordを利用してオブジェクトを配列で取り出した後に、オブジェクト内のデータを検索したいことが多々あります。

それぞれの行ごとにDBへアクセスしていると件数が増加すると処理が劣化するおそれがありますので一度取り出したオブジェクトを検索して期待したデータを取り出したいと思います。

例として、以下のレイアウトのbookというテーブルからオブジェクトを生成し、そのオブジェクトを検索する方法を考えてみます。

----------
book table
year : int
created_at : datetime
name : varchar(128)
price : int

----------

def get_books
@books = Book.find(:all)
search_obj(2004)
end

def search_obj (year)
@result = @books.select {|book| book.year == year}
end

この結果として@resultに@booksにbook列がオブジェクトとして格納されます。

SevenAgent,Inc

0 件のコメント: