#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, чтобы у вас не было никаких странных ошибок.