私は次の(簡略化された)関係を持っています:
class Project
include Mongoid::Document
field :name
field :description
has_many :payments
end
class Payment
include Mongoid::Document
field :date
field :amount
belongs_to :project
end
現在、次の問題があります。コントローラーで支払いを更新すると、支払いデータが更新されますが、プロジェクトは更新された要素を「忘れます」。これは私のコントローラーからの関連コードです:
def update
respond_with Payment.where(id: params[:id]).update(params[:payment])
end
コンソールに移動すると、「payment.project」は関連するプロジェクトを返しますが、「project.payments」は関連する支払いを表示しません。「支払い」には、プロジェクトの ID に関連する「project_id」フィールドがまだあります。
プロジェクトへの/からの支払いの追加と削除は正常に機能します。この問題は、支払いが編集された場合にのみ発生します (project_id は変更されず、金額などの他のフィールドのみが変更されます)。
問題は何ですか?これは私のモンゴイド構成の問題ですか? それとも、関係を正しく設定していませんか?