フォームをオブジェクトにバインドする: このようなコンテキストでの「スコープ付き」とは何を意味しますか?
概要
Ruby on Rails ガイドから:
「フォームをオブジェクトにバインドする」
form_with の :model 引数を使用すると、フォーム ビルダー オブジェクトをモデル オブジェクトにバインドできます。これは、フォームのスコープがそのモデル オブジェクトに設定され、フォームのフィールドにそのモデル オブジェクトの値が入力されることを意味します。」
出典: 記事
説明されている文脈における「スコープ付き」とは何を意味しますか?
「スコープ」とは、特定の変数/定数が表示され、それぞれアクセス可能な領域として認識されています。ここでの意味はわかりません。
解決策
そのガイドの以下のテキストを読む必要があります
ご覧のとおり、すべてのフィールド名のスコープは name=“article[title]”、name=“article[body]” などです。
これは、バックエンドパラメータのスコープがキー記事であることを意味します: { title: “My Title”, body: “My Body” }
HTML ID もモデル名でスコープ指定されます: id=“article_title”、id=“article_body” など。
フォームアクションの URI は記事 ID に基づいて自動的に入力されます: action=“/articles/42”
フォーム フィールドの値は、モデル インスタンスの属性 (value=“My Title”、<textarea …>My Bodyなど) にマップされます。
フォームは、モデル インスタンスが存続するかどうかもチェックします。この事実に応じて、フォーム方法 (POST または PATCH) と送信デフォルト値 (作成または更新) が選択されます。
明示的に記述する必要はありません。フォームに :model キーを使用し、属性名をフォーム入力ヘルパーに渡すだけです
要約すると、このコンテキストでの「スコープ付き」とは、フォームが特定のモデル オブジェクトと緊密に統合されており、そのモデルの属性に直接結び付けられた方法で動作し、フォーム パラメータを特定のキーでカプセル化することを意味します。