1

Rails 3 アプリケーションで Mongoid を使用して update_attributes を実行しようとしています

私が遭遇している問題はこれです:

コレクションに次のフィールドがあるとします。

{"名前": "foo", "メール": "バー" }

これがシナリオです

私がこれを行う場合:

@person = Person.where(:Name => "foo", :_id = "some_id")

そして、私はこれを行います:

@person.update_attributes(:Name => "baba-fooka", :Last_Name => "baba-bara")

上記のコード行は、mongodb のレコードを更新しますが、ドキュメントに新しいフィールドも追加します。

まだ存在しないフィールドの挿入を許可しない検証で update_attributes メソッドを使用するにはどうすればよいですか

4

1 に答える 1

2

あなたが望むのは、 mongoid設定ファイルで allow_dynamic_fields を false に設定することです。動的フィールドはデフォルトでオンになっており、フィールドが定義されていない場合でも、属性を設定してドキュメントに保持できます。

config/mongoid.ymloptions set の下に入りますallow_dynamic_fields: false。既に存在するはずですが、コメントアウトして true に設定します。それが偽であることを確認してください。

于 2012-08-15T18:31:05.347 に答える