【发布时间】:2018-04-23 13:35:03
【问题描述】:
我有Sellers 的模型,他们拥有games 和unlimited_games,其他players 可以购买。我想取消特定seller 的所有购买。我只有games 时的模型是:
class Seller
has_many :purchases, through: :games, dependent: :destroy
end
class Purchase
belongs_to :game
end
class Game
has_many :purchases
belongs_to :coach
end
更新模型
def UnlimitedGame
has_many :purchases
belongs_to :coach
end
def Purchase
belongs_to :game
belongs_to :unlimited_game
end
我可以通过@seller.purchases 获取该卖家的所有购买信息。现在我想扩展相同的功能以包含所有unlimited_games
所以@seller.purchases 包括unlimited_games 和games。我试着做:
has_many :purchases, through: :games, dependent: :destroy, class_name: :purchases
has_many :purchases, through: :unlimited_games, dependent: :destroy, class_name: :purchases
【问题讨论】:
-
你如何想象rails应该知道
purchases何时引用games和purchases何时引用unlimited_games? -
当我特别想要它们时,我可以使用不同的名称来区分它,例如
unlimited_games_purchases或games_purchases但我可以使用purchases来获取所有games包括games和unlimited_games -
如果您已经定义了
purchases,然后立即重新定义了purchases,那会是什么样子? -
我知道那行不通,但这正是我不确定的部分。可能有一种方法可以包含多个关联以获得相同的
table。我现在找不到办法,但我希望这个问题能给我同样的答案 -
game和unlimited_game有什么区别?
标签: ruby-on-rails ruby ruby-on-rails-4 associations