应用程序控制器方法需要两个参数generate_municipal_withins(municipal, radius)
,但在单独的控制器操作中,调用此方法会产生
ArgumentError (wrong number of arguments (given 1, expected 2)):
来自
@municipals.each do |municipal|
generate_municipal_withins(municipal: municipal, radius: 70)
我的假设是前者,因为如果将其修改为generate_municipal_withins(municipal: municipal, 70)
,则会产生相同的错误。
因此,集合的成员似乎没有作为参数传递。应该如何修复语法?
从方法定义中,它告诉该方法需要用两个参数调用,但您在中使用了一个散列
generate_municipal_withins(municipal: municipal, radius: 70)
执行method(municipal: municipal, radius: 70)
与method({municipal: municipal, radius: 70})
相同,后者是作为散列的单个参数。
如果你的方法被定义为使用关键字参数,那么你可以使用问题中显示的版本,但为此方法应该写成:
generate_municipal_withins(municipal:, radius:)
...
end
尝试只通过municiapl
和70
:
generate_municipal_withins(municipal, 70)