有时间问专家。我正在尝试为我的数据库播种。下面的代码给出了错误的参数数量错误,无法创建'类别'宾语。这是在此文件中创建对象期间第一次出现此错误。
@category1 = Category.new( {'description' => 'food'} )
@category1.save
这就是我的类别模型。
class Category
attr_reader :id, :description,
def initialize(options)
@id = options['id'].to_i
@description = options['description']
end
```
显然它期望零参数。但我用选项哈希初始化它。 I.d后来来自SQL。
有什么想法吗?
答案 0 :(得分:1)
我发现了问题
删除attr_reader
列表末尾的逗号:
attr_reader :id, :description,
到
attr_reader :id, :description
PS
只是错字
答案 1 :(得分:0)
问题是使用attr_reader的属性读取器定义末尾的尾随逗号。
如果你改变它:
attr_reader :id, :description,
到此:
attr_reader :id, :description
它应该可以正常工作(至少在我的测试中是这样)。
AFAICT的原因是,使用逗号,整个定义成为attr_reader方法的参数。不确定它对该参数的作用(可能只能告诉更专业的rubyist), 但是在结果中,你的类没有接受任何参数的初始化方法。