私はプロジェクトに管理ページを持っており、フィールドの大きなセクションの名前を変更することにしました。そこで、モデルを変更して変更を反映させ、新しいフィールドをコマンドラインで古いフィールドと同じに設定しようとしました。私はそれを行う方法を理解できませんでしたので、私は基本的に私の管理ページに新しいフィールドを追加し、手動で値を設定しました(私が知っているハックシ)。Mongoidは値がデフォルトと異なるフィールドを挿入するだけです
それでは、新しいフィールドの2を言われてみましょう:
field :foo, default: 0
field :bar, default: 9
すべてが正常に動作するように見えたと私は管理者にfooとバーを設定すると、その値が保存されました。しかし、私はそれらが実際に私のdbに保存されていないかのように、それらの値に対して照会することができなかったことに気づいた。だから、私はMongoHubを見ましたが、実際にそこにはいませんでした。だから私はちょっとグーグルをして、更新を保存する必要があるのを見た。
ので、アップデートのコードは今のようになります。
if @stat_definition.update_attributes(params[:stat_definition])
@stat_definition.save
[other stuff]
そして今、そのデフォルト以外に設定されている任意のフィールドが保存されてきているが、そのデフォルトのままにされている任意のフィールドではありません。これらのデフォルト値を保存するにはどうすればよいですか?
そして、fooをフィールドold_fooに設定し、barをold_barの値に設定する方法は何ですか?
それがその後、新しいレコードで再びトリミングうとして、実際に問題を解決していません。 – Tigraine