ルールの例をいくつか示します。
name == ‘MyName’ (title =~ /R/) and (title.size > 10) not (count < 20)
基本的に「属性 オペレータ 条件」でルールを記述します(属性はコンポーネントで定義されているアクセサかインスタンス変数です)。複数のルールをつなげるにはand
/or
を、否定にするにはnot
を式の前に記述します。論理演算子を使うときは、式をかっこで囲んでください。
上記のうち、最後の例では属性を数値としてルールを設定しています。フォームデータは文字列として代入されますが、データの検証時は条件に合わせてデータ型が変換されます。例えば100以上500以下などのルールは以下のように記述します。
Number : CKTextField { value = number validate = “(number >= 100) and (number <= 500)“ pass = pass_number }
使用できるオペレータを次に示します。
オペレータ | 説明 |
---|---|
== |
両辺が同じ。 |
!= |
両辺が異なる。 |
> |
左辺が右辺より大きい。 |
< |
左辺が右辺より小さい。 |
>= |
左辺が右辺より大きいか、同じ。 |
<= |
左辺が右辺より小さいか、同じ。 |
=~ |
文字列のパターンマッチを行う。 |