第3項. モデルの操作方法について

Rhom APIを使用するモデルの使用できる機能を説明します。

1. データを取得する

データを取得するには、Model.findメソッドを使用します。

 

Roster.find(*args)

 

argsには、以下の値を指定することができます。

 

  • ● :all ・検索条件に該当するすべてのレコードを返します。
  • ● :first ・検索条件に一致する最初のレコードを返します。
  • ● :count ・検索条件に一致するレコード件数を返します。
  • ● :conditions - 「属性 => 値」のHash形式で検索条件をしていします。文字列のパターンでの検索を行うには、”company_name like 'システム工房'”のように記述するか、もしくは、[”company_name like ?”, “'#{システム工房}'# ]のように記述する必要があります。
  • ● :order ・属性を指定して、データの並び替えを行う。
  • ● :orderdir - :orderで指定した属性の並び替えの順序を昇順か、降順かを指定する。
  • ● :select ・指定した属性のみを返す。配列か文字列で属性を指定する。
  • ● :per_page ・データを返す最大件数を指定する。
  • ● :offset ・データを返すときに、何件目から返すかを指定する。

 

以下に実際の利用例を表示する。


例: 会社名の降順でデータを取得する。


@rosters = Roster.find(:all, :order => “company_name”, :orderdir => “DESC”)

 

例: 会社名の降順でかつ、ユーザ名の昇順でデータを取得する。


@rosters = Roster.find(:all,
   :order => [“company_name”, “username”],
   :orderdir => [“DESC”, “ASC”]
)

 

なお、find(:all)と指定する場合は、find_allメソッドを使用することもできる。

 2. データをSQLを実行してデータを取得する

データを取得するときに、直にSQLを実行する場合は、Model.find_by_sqlメソッドを使用します。

 

@rosters = Roster.find_by_sql(sql)

 

sqlには、実行させるSQLを指定します。

 3. ページネート機能を利用してデータを取得する。

ページネート機能を利用してデータの取得を行うには、Model.paginateメソッドを使用します。

 

@rosters = Roster.paginate(options)

 

optionsには、以下の値を設定することができます。

 

  • ● :page ・表示するページを指定する。
  • ● :per_page ・1ページあたりの表示件数を指定する。
  • ● :conditions ・検索条件を指定する。
  • ● :order ・属性で表示順を指定する。
  • ● :select ・取得する属性を指定する。

 

:conditions,:order, :selectのオプションについては、第1章.第5節.第3項.1データを取得するを参照してください。

 

使用例:


# データを先頭から5件表示する。
@roster = Roster.paginate(:page => 0, :per_page => 5)

 

 4. Rhomオブジェクトを生成する/保存する

新しいRhomオブジェクトを生成するには、Model.newメソッドを指定します。

 

@roster = Roster.new(attributes)

 

attributesには、割り当てられている属性に初期値を設定することができる。

作成したオブジェクトでデータを保存するには、Model#saveメソッドを使用します。

 

@roster.save

 

 5. Rhomオブジェクトを作成し、データベースに保存する

新しくRhomオブジェクトを作成し、データベースに保存するには、Model.createメソッドを使用します。

 

@roster = Roster.create(attributes)

 

attributesには、割り当てられている属性に登録する値を設定し、保存することができる。

 

 6. ローカルのデータベースに保存されているデータを更新する

ローカルのデータベースに保存されているデータを更新するには、Model#update_attributesメソッドを使用します。

 

@roster = Roster.find(:all).first
@roster.update_attributes(attributes)

 

 7. 単一レコードを削除する

単一のレコードを削除するには、Model#destroyメソッドを使用します。

 

@roster = Roster.find(:all).first
@roster.destroy

 

 8. 条件に一致するデータを削除する

検索条件に一致したデータをすべて削除するには、Model.delete_allメソッドを使用します。

 

Roster.delete_all(options)

 

optionsには、以下のオプションを指定することができます。

 

  • ● :conditions ・検索条件を指定します。サポートされている値は、findメソッドと同じものになります。
システム工房エムのサイトへのリンク

住所〒690-0017 島根県松江市西津田3-2-3 TEL.0852-23-8590 FAX.0852-23-8591
Copyright 2008-2010 System Maker M,All right reserved