2016-08-01 16 views
0

私はgrailsに少し新しく、grailsドメインクラスで 'nullable'と 'blank'制約を使う方法を明確に理解したいと思います。grailsドメインクラスで、nullおよび/および空白の制約はいつ、そしてなぜ必要ですか?

例は次のとおりです。

静的制約= { 名ブランク:真 }

静的制約= { 名NULL可能:、真ブランク:= {真 名NULL可能}

静的制約真 }

これらのそれぞれの意味は、適用されます?

+0

Nullable:キャプチャされる入力フィールドとしてWebページに表示されないフィールドであるとも考えられます.walletSizeがありますが、walletSizeが登録されていないフォーム入力をキャプチャすると表示されません。あなたが保存するように保存されているフィールド 新しい人物(名前:名前).save() しかし、別のフォームであなたはそれを持っている可能性があります。 実際に何かを提示すると空白になります。文字列名 フォームページの名前フィールドは存在しますが、ユーザーが実際に空白のままにしておくことができます。 – Vahid

+1

可能な複製http://stackoverflow.com/questions/29203099/空白と空白の違いヌル制約 –

答えて

0

まあ、最初はです。docsを調べてください。
2番目:
nullableは、デフォルトではすでにfalseに設定されています。ある値をNULL値にしたい場合は、name nullable: trueと書いてください。
ヌル可能な意味オブジェクトを作成すると、その値はnull(入力されません)のままにすることができます。 ブランク - オブジェクトのパラメータ入力用のフォームを作成し、フィールドを空のままにすると、エラーなしで保存され、空の値が受け入れられます。
ロングストーリー短く - 空白は、フォームが空であることを受け入れるためのものです。 Nullableは、コード化されたオブジェクトが値なしで保存されることです。
this postもご覧ください。

1

すべてのプロパティは、デフォルトではヌルではありませんので、あなたがしたい場合、一般的にあなたがnullable制約を使用する唯一の時間ですがヌル、すなわちnullable: trueを許可します。

さらにデフォルトでは、Grailsのデータバインディングは空白文字列をnullに変換します。これは実質的にはblank: falseが適用されることを意味します(空白はnullに変換され、nullは禁止されるためです)。

blank: falseを明示的に指定する必要があるいくつかの理論的なケースがあります。データバインド後にプロパティが空の文字列に設定されている場合しかし、これらは実際には起こりそうにないので、デフォルトではblank: false, nullable: falseが適用されていると考えるのは妥当です。

関連する問題