0

2 つの ActiveRecord モデルがあるとします (移行は含めません)。

class User < ActiveRecord::Base
    belongs_to :subscription, :inverse_of => :users
end

class Subscription < ActiveRecord::Base
    has_many :users, :inverse_of => :subscription
end

rails consoleモデルごとに新しいオブジェクトを作成し、サブスクリプション モデルにユーザーを追加できます。

>> s = Subscription.create
  => #<Subscription id: 1>
>> u = User.create
  => #<User id: 1, subscription_id: nil>
>> s.users << u
  => [#<User id: 1, subscription_id: 1>]
>> u
  => #<User id: 1, subscription_id: 1>

しかし、Array.clear メソッドを使用すると、コレクションはクリアされますが、関連付けられたモデルはすぐには更新されません。

>> s.users.clear
  => []
>> u
  => #<User id: 1, subscription_id: 1>

呼び出すu.reloadと、データベースから最新バージョンが取得されますが、キャッシュされたモデルを更新するためにそれを行う必要はありません。Bi-Directional Associations:inverse_ofで提案されているように使用してみましたが、うまくいきませんでした。

4

0 に答える 0