0

假设我有两个 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