我是RoR的新手,使用Rails 4.0,我需要计算模型实例的完整程度。 我有一个带有{first_name,last_name,email,description,location}的用户模型。如果您对类似宝石有任何建议(比如completeness-fu)或任何其他方法,那将非常有帮助。
答案 0 :(得分:0)
几天前我也遇到了同样的问题。我没有任何宝石就解决了这个问题。我在linkedin上写了一篇有关该解决方案的文章。您可以检查以下链接:https://www.linkedin.com/pulse/calculating-completeness-attributes-rails-models-ravi-kashyap/
或者您可以在用户模型中简单地做到这一点:
def self.total_columns
column_names.count
end
def self.all_columns
column_names
end
def filled_columns
counter = 0
self.class.all_columns.each do |column|
if self.attributes[column].present?
counter += 1
end
end
counter
end
def completeness
"#{(self.filled_columns * 100) / self.class.total_columns} %"
end
希望这对您有所帮助,但我也建议您通过此链接,因为我在那儿提到了如何重用代码。 谢谢