发现误解



也许我忽略了一些明显的东西,但我正试图将一个实际的场景应用到这个rails for Zombies教程中。

——问题 ------------假设模型和关系被正确定义,找到所有属于僵尸'Ash'的武器。

class Zombie < ActiveRecord::Base
  has_many :weapons
end
class Weapon < ActiveRecord::Base
  belongs_to :zombie
end

教程接受-

的答案
z = Zombie.find(1)
[#<Zombie ­id: 1, nam­e: "Ash", ­graveyard:­ "Glen Hav­en Memoria­l Cemetery­">]
z.weapons
[#<Weapon ­id: 1, nam­e: "Hammer­", strengt­h: 1, zomb­ie_id: 1>]

但对我来说,这是不太实际的,如果我正在做一个项目,这种类型的问题出现了,我会这样做。

ash = Zombie.where(:name => "Ash")
[#<Zombie ­id: 1, nam­e: "Ash", ­graveyard:­ "Glen Hav­en Memoria­l Cemetery­">]

,

ash.weapons

给出输出

#<NoMetho­dError: un­defined me­thod `weap­ons' for #­<ActiveR­ecord::Rel­ation:0x00­0000163347­38>>

当找到僵尸的输出完全相同时,我发现僵尸的方式更实用,因为问题是框架(即使他们提供db表)。这是与codeschool互动主机的细微差别,还是我遗漏了什么?

谢谢您的关注。

结果显示:

[#<Zombie ­id: 1, nam­e: "Ash", ­graveyard:­ "Glen Hav­en Memoria­l Cemetery­">]

这是某种增强的数组。所以如果你输入:

ash = Zombie.where(:name => "Ash").first
ash.weapons

将返回所有武器

相关内容

  • 没有找到相关文章

最新更新