我正在寻找一个好的宝石来处理注册工作流程的“完成百分比”。基本上,我的应用程序允许用户只注册一个电子邮件和密码,然后有一个LinkedIn风格百分比指标随着生日和性别等字段的增加而增加。是否存在帮助设置这样的流程的好宝石?
谢谢!
答案 0 :(得分:11)
这是一个非常简单(和蹩脚)解决方案的演示:
在你的模型中,创建一个包含要完成的字段的数组,再加上一个整数字段来存储当前状态,例如:
class User < AR::Base
PROFILE_COMPLETENESS = %w[email, website_url, personal-info, etc ]
before_update :update_profile_progress, :if => Proc.new {|u| u.progress_status < 100}
private
def update_profile_progress
progress = 0
PROFILE_COMPLETENESS.each do |field|
progress += 1 unless field.blank?
end
self.progress_status = (progress / PROFILE_COMPLETENESS * 100).to_i
end
end
这样,每次用户更新其个人资料时,百分比都会更新(仅当低于100%时)。
也许有更好的解决方案,这只是解决问题的可能方法;)
答案 1 :(得分:5)
我猜completeness-fu就是你要找的东西
答案 2 :(得分:3)
我不会为此使用宝石。为什么不在用户配置文件中创建完成百分比,并使用它来绘制配置文件页面中的完成百分比。在用户第一次添加属性后,简单地将所需的点数添加到比例。您还可以在用户模型中使用一些检查,以确保比例保持在100或低于100,这样您就不会有任何奇怪的错误。