|
||||||||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||||||||
| バリデーション | ||||||||||||||||
|
Railsではモデルクラスに宣言的にバリデーション情報を記述することができます。 Grailsでは、モデルクラス内のconstraintsメソッドにバリデーション記述を書くことができます。リスト2ではnameとpass属性のバリデーションを記述しています。 リスト2:Grailsのバリデーション
class Person {
|
||||||||||||||||
| ダイナミックファインダ | ||||||||||||||||
|
Railsではメソッド定義なしでモデルの「find_by_*」(*は任意のカラム名)というメソッドを呼び出すことができ、自動的にカラム名をキーにした検索処理が実施されます(ダイナミックファインダ機能)。 この機能はGrailsにも準備されており、メソッド定義なしでも「findBy*」というメソッドでRailsと同様の効果を得られます。また、Grailsのモデルで「listOrderBy*」というメソッドを利用すると、ソートされた検索結果一覧を得ることができます。 未定義メソッドでこのような効果を得る機能はRailsには見当たりません(注2)。
※注2:
Railsでも通常の方法で「order by」指定することはできます
リスト3:Grailsのダイナミックファインダ
Person.findByName('yamada') //<= "yamada"という名前のPersonを検索
|
||||||||||||||||
| 対応RDB | ||||||||||||||||
|
RailsとGrailsの対応RDBをまとめたものが表6です。両者ともメジャーな製品に対応しており、大差はありません。
表4:RailsとGrailsの対応RDB
|
||||||||||||||||
| モデル比較の結論 | ||||||||||||||||
|
モデルにおける機能的な面で比べると、Railsにしかない機能もGrailsにしかない機能もあるといった状態で、大差はありません。 スキーマ管理についてはRailsとGrailsの考え方は大きく異なっています。すべてGroovy上で完結するGrailsの考え方はシンプルですが、インデックスやカラムサイズを指定できない点を考慮すると、本格的なサイトの運用には耐えないかもしれません。 現状ではRailsのモデルの方がGrailsよりも優れているといえるのではないでしょうか。 |
||||||||||||||||
|
前のページ 1 2 3 次のページ |
||||||||||||||||
|
|
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||

