gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中建模和创建自定义的一副牌?

转载 作者:行者123 更新时间:2023-12-04 07:09:20 25 4
gpt4 key购买 nike

我正在尝试模拟纸牌游戏以学习 Rails。这与标准的一副扑克牌不同,因为一副牌中可以有多张牌。我在尝试初始化甲板时遇到了问题。到目前为止,我已经有了一个具有各种属性(例如 copy_in_deck)但没有关联的基本卡片模型。一个 DeckCard 模型,代表一副牌中的牌(这是由于牌组中有多个相同的牌):

class DeckCard < ActiveRecord::Base
belongs_to :card
belongs_to :deck
end

这些 DeckCard 最终会具有反射(reflect)位置的属性;如弃牌堆、抽牌堆等。

甲板模型
belongs_to :game
has_many :deck_cards

我正在尝试初始化甲板,但遇到了各种问题。我正在 Deck 中尝试以下操作
def initialize
@cards = Card.find(:all)
@cards.each do |card|
# eventually another loop here on copies_in_deck
@deck_cards.build(card)
end
end

当我这样做时 Deck.new我在 nil.build 上遇到错误。为什么@deck_cards 为零?

我使用的是 InstantRails2,它有 rails 2.0.2。我找到了 this article 关于在一个 Action 中创建多个模型,所以我尝试使用 Deck.create!相反,并收到有关错误数量的参数的错误。

有什么建议?

最佳答案

class Deck < ActiveRecord::Base
belongs_to :game
has_many :deck_cards

# To create new: Deck.new.build_deck
def build_deck
Card.find(:all).each do |card|
self.deck_cards << DeckCard.new(:card => card)
end
end
end

关于ruby-on-rails - 如何在 Rails 中建模和创建自定义的一副牌?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/620646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com