我收到一个" NoMethodError:未定义的方法`stringify_keys' 1:Fixnum,"错误,有什么建议吗?
def self.gen_group(name, score, units = {})
transaction do
g = Group.create(name: name)
units.each do |name, number|
g.members.create(unit_id: Unit.find_by(name: name.to_s).id, amount: number)
end
g
end
end
我的方法电话:
g1 = Group.gen_group("Waldor's Slugs", :Pikeman => 5, :Archer => 4, :Wizard => 1)
答案 0 :(得分:1)
哈希:Pikeman => 5, :Archer => 4, :Wizard => 1
已分配给score
(未在方法中使用),而不是units
。
如果您打算在:Pikeman => ...
中循环units.each
哈希,那么只需从方法签名中删除过时的score
。
答案 1 :(得分:0)
在方法调用中,尝试:
g1 = Group.gen_group("Waldor's Slugs", "Pikeman" => "5", "Archer" => "4", "Wizard" => "1")
我忘记了细节,但是在Rails中的一些地方你不能依赖于符号形式(:Pikeman)可以与字符串形式(" Pikeman")在哈希中互换。您可以尝试使用方法调用来查看是否还需要将值作为字符串发送。