检查模型的属性

时间:2014-02-23 20:28:37

标签: ruby-on-rails ruby

我编写了一些代码,用于测试我的模型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)

我该如何解决这个问题?感谢

1 个答案:

答案 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