Жемчужина для процента завершения профиля в Rails - PullRequest
7 голосов
/ 01 июня 2011

Я ищу хороший драгоценный камень для управления "процентом завершения" рабочего процесса регистрации.По сути, мое приложение позволяет пользователю зарегистрироваться только по электронной почте и паролю, а затем имеет процентный индикатор в стиле LinkedIn, который увеличивается по мере добавления таких полей, как день рождения и пол.Существует ли хороший драгоценный камень для помощи в настройке такого потока?

Спасибо!

Ответы [ 3 ]

11 голосов
/ 01 июня 2011

вот демо для очень простого (и неудачного) решения:

в вашей модели создайте массив с полями для заполнения, а также целочисленное поле для хранения текущего статуса, например:

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%).

возможно, есть лучшие решения, это просто возможный подход к проблеме;)

5 голосов
/ 01 июня 2011

Я думаю завершенность фу это то, что вы ищете

3 голосов
/ 01 июня 2011

Я бы не использовал драгоценный камень для этого.Почему бы вам не создать процент выполнения в вашем профиле пользователя и использовать его для отображения процента выполнения на странице профиля.После того, как пользователь впервые добавляет атрибут, просто добавьте желаемое количество баллов к шкале.Вы также можете использовать некоторые проверки в своей пользовательской модели, чтобы убедиться, что масштаб остается на уровне 100 или ниже, чтобы у вас не было никаких странных ошибок.

...