Драгоценный камень для определения процента завершения профиля в Rails

#ruby-on-rails #ruby #gem

#ruby-on-rails #ruby #rubygems

Вопрос:

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

Спасибо!

Комментарии:

1. Почему именно ваш поиск драгоценного камня делает это? Разве это не то, что вы могли бы реализовать непосредственно в коде вашего приложения?

Ответ №1:

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

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

 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. Как я могу просмотреть в rails html.erb

2. @FaiqAdam user.progress_status.progress_status. кстати, спустя 3 года, сегодня я бы сказал, что использовал бы какой-нибудь декоратор / презентатор для просмотров.

Ответ №2:

Я думаю, completity-fu — это то, что вы ищете

Комментарии:

1. Последний коммит был 4 года назад — осторожно.

Ответ №3:

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