我有三个模型,其中两个通过连接模型链接:
# user.rb
has_many :user_cards
has_many :cards, through: :user_cards
# cards.rb
has_many :user_cards
has_many :users, through: user_cards
# user_cards.rb
belongs_to :user
belongs_to :card
当我想向用户添加卡片时,我想指定一个UserCard的属性,这就是我用这种方式创建它的原因:
# example
user.user_cards.create(card: card, paid: true)
user.cards
时,它不包含我的新记录。 user.user_cards
它确实包含我的新记录。 我需要致电user.cards.reset
(或重新加载)。我不喜欢这个解决方案,因为它需要另一个查询。
您知道如何在没有其他查询的情况下重新加载|更新user.cards
吗?
谢谢!
答案 0 :(得分:1)
使用user.cards(true)
或user.cards(force_reload = true)
。