Database 发现误会
也许我忽略了一些显而易见的东西,但我正在尝试将一个实际的场景应用到这个railsforzombies教程中 --------问题:------------ 假设模型和关系被正确定义,找到所有属于僵尸“灰烬”的武器Database 发现误会,database,ruby-on-rails-3,methods,Database,Ruby On Rails 3,Methods,也许我忽略了一些显而易见的东西,但我正在尝试将一个实际的场景应用到这个railsforzombies教程中 --------问题:------------ 假设模型和关系被正确定义,找到所有属于僵尸“灰烬”的武器 class Zombie < ActiveRecord::Base has_many :weapons end class Weapon < ActiveRecord::Base belongs_to :zombie end 给出输出 #<NoMetho
class Zombie < ActiveRecord::Base
has_many :weapons
end
class Weapon < ActiveRecord::Base
belongs_to :zombie
end
给出输出
#<NoMethodError: undefined method `weapons' for #<ActiveRecord::Relation:0x00000016334738>>
#正如您的结果所示:
[#<Zombie id: 1, name: "Ash", graveyard: "Glen Haven Memorial Cemetery">]
将返回所有武器。我仍然不确定是否理解,因为两个阵列都相同地“增强”,但其中一个阵列对武器调用的响应不同。我想我更大的问题是,我是否可以/是否会在实践中使用我认为是实用的调用?当您找到(1)时,它将返回单个资源。其中将返回活动记录关系。如果你在这两种情况下都使用ash.class,你会发现它们是两种不同的东西
ash.weapons
#<NoMethodError: undefined method `weapons' for #<ActiveRecord::Relation:0x00000016334738>>
[#<Zombie id: 1, name: "Ash", graveyard: "Glen Haven Memorial Cemetery">]
ash = Zombie.where(:name => "Ash").first
ash.weapons