SchoolLinkedinTwitterFacebookPinterestVKEmailPrintチェンジセットこの和訳は最新です。第1引数にチェンジセットを必要とします。チェンジセットとは何でしょうか?ほぼ全ての開発者にとって馴染みのあるタスクは、潜在的なエラーのために入力データをチェックすることです。目的に沿ってデータを使用する前に、そのデータが正常な状態であることを確認したいのです。モジュールとデータ構造体という形で、データの変更を扱うための完全なソリューションを提供します。このレッスンではそれらの機能を調べ、データベースへ永続化する前にデータの整合性を検証する方法を学びます。false>見ての通り、便利そうなフィールドがいくつかありますが、全て空になっています。チェンジセットを本当に役立つものにするためには、作成時に、どのようなデータになるかという設計図を提供する必要があります。Ectoは構造体そのものに基づいてスキーマを見つけることができます。2番目は私たちが行いたい変更であり、ただの空のマップです。これは通過させることを許可するフィールドのリストであり、これによってどのフィールドが変更可能なのかを制御可能とし、残りを安全に保護します。true>2回目では新しいnameが明示的に許可されていないため、無視されていることがわかるでしょう。ように変更をフィルタリングする機能を持ちません。これは変更を加えるソースが信頼できるとき、あるいは手動でデータを扱う時に便利です。ここではチェンジセットを作りましたが、バリデーションを持っていないので、personのnameにあらゆる変更が受け付けられてしまい、その結果、空の名前になる可能性もあります。true>Ectoはチェンジセットが正常であると言っていますが、実際には空の名前を許可したくありません。これを修正しましょう!バリデーションEctoは私たちを手助けするために、いくつものビルトインのバリデーション機能を持っています。関数を直接使うことができます。1つのスキーマに複数のチェンジセット作成関数を持つことはよくあります。関数に空のnameを渡して呼び出すと、チェンジセットは無効になり、役に立つエラーメッセージまで含まれます。実行を忘れないでください。しなければ、コードの変更が反映されません。自身で毎回チェックする必要はありません。挿入、更新、削除を試みて、エラーがある場合は後から処理をする方が簡単です。含んでいることに驚くかもしれません。これは他言語への翻訳を補助するためです。使って人が読める形式に変更できます。ドキュメントで提供されている例に目を通してください。カスタムバリデーションビルトインのバリデーションは広い範囲のユースケースをカバーしていますが、それらとは別のものがまだ必要かもしれません。受け取って返すので、私たち自身のものを簡単に接続することができます。これらの動作はほとんど名前が表す通りですが、ドキュメントのリンクを確認することをお勧めします。常に返すことがグッドプラクティスです。関数を代わりに使うこともできるので、この関数を私たち自身が実装する必要はそれほどありません。それでも、役に立つはずの自身のエラー追加する方法を確認できます。手動でチェンジセットに変更を加えたいことがあるでしょう。ヘルパーはこの目的のために存在します。フィールドを必須にするよりも、名前無しでのサインアップをユーザーに許可し、彼らを”Anonymous”と呼びましょう。必要な関数はおなじみのものになます。ように、チェンジセットを受け取って返します。endendユーザーの名前を”Anonymous”として設定できるのは、ユーザーがアプリケーションに登録したときだけです。これを行うために、新しいチェンジセット作成関数を作ります。ような)チェンジセット作成関数を持つことは珍しいことではありません。特定のバリデーションだけを実行したり、特定のパラメータをフィルタリングしたりする柔軟性が必要なこともあります。伴う副作用の処理、アソシエーションや埋め込みなど、このレッスンではカバーできなかった多くのユースケースや機能があります。公式ドキュメントで詳細を見ることをお勧めします。