未定义的方法`stringify_keys' 1:Fixnum

时间:2014-04-05 16:03:54

标签: ruby-on-rails ruby-on-rails-4

我收到一个" 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)

2 个答案:

答案 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")在哈希中互换。您可以尝试使用方法调用来查看是否还需要将值作为字符串发送。