0

私は次の(簡略化された)関係を持っています:

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 は変更されず、金額などの他のフィールドのみが変更されます)。

問題は何ですか?これは私のモンゴイド構成の問題ですか? それとも、関係を正しく設定していませんか?

4

1 に答える 1