假设我有两个 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
中的建议使用,但没有奏效。