我编写了一些代码,用于测试我的模型Icd3Code
的特征,其中的值比255
长。我之所以这样做,是因为我首先将模型中的所有字段定义为text
,但并非所有属性都需要这么大的空间!所以我想将一些属性更改为string
:
我的代码:
arr = Icd3Code.new.attributes.keys
Icd3Code.all.each do |f|
arr.each do |a|
if f.a.length >= 255
puts a
end
end
end
Icd3Code.new.attributes.keys
给了我这样的输出,这就是一个问题:
["id", "abrechenbar", "alter_fehler", "alter_o"
因为全部strings
!
表示f.a.length
返回错误:
method_missing': undefined method `a' for #<Icd3Code:0x7f395f0> (NoMethodError)
我该如何解决这个问题?感谢
答案 0 :(得分:2)
您所要做的就是将f.a.length
替换为a.length
。
我认为您需要检查值而不是属性键。 这是更新的代码
Icd3Code.all.each do |f|
f.attributes.values.each do |a|
if a.length >= 255
puts a
end
end
end