在Rails中完成配置文件百分比的宝石

时间:2011-06-01 05:46:47

标签: ruby-on-rails ruby gem

我正在寻找一个好的宝石来处理注册工作流程的“完成百分比”。基本上,我的应用程序允许用户只注册一个电子邮件和密码,然后有一个LinkedIn风格百分比指标随着生日和性别等字段的增加而增加。是否存在帮助设置这样的流程的好宝石?

谢谢!

3 个答案:

答案 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,这样您就不会有任何奇怪的错误。