1

コントローラーでこれを言うと:

@order = Order.new(params[:order])

これが機能するには何が必要ですか?

params[:order]Order モデルのすべてのフィールドが 1 対 1 で一致する必要がありますか?

params[:order]または、Order をインスタンス化するために必要なフィールドよりも多いまたは少ないフィールドが存在する可能性がありますか?

4

2 に答える 2

1

params[:order] 自体はハッシュである必要があり、各キーはモデル フィールドの名前です。Rails がフォーム フィールド名を params ハッシュに変換する方法を確認するには、form_for ヘルパーとビュー ソースを使用してビュー テンプレートを記述します。

はい、より多くのフィールドまたはより少ないフィールドが存在する可能性があります。余分なフィールドは無視されます。インスタンスオブジェクトにコピーされないフィールドが少なくなります。ActiveRecord オブジェクトをインスタンス化するために必要なものはまったくありません。(オブジェクトの有効性と保存は別の話です。これらは検証と ActiveRecord コールバック メカニズムを呼び出します。)

于 2009-05-25T19:02:30.340 に答える