Если вы используете простое приложение rails с адаптивным дизайном.
Сначала вам нужно проверить, мобильное или другое устройство. Это вы можете делать разными способами.
Пользовательский путь:
В application_helper.rb:
def mobile_device
agent = request.user_agent
return "tablet" if agent =~ /(tablet|ipad)|(android(?!.*mobile))/i
return "mobile" if agent =~ /Mobile/
return "desktop"
end
Затем вы можете использовать его в своих представлениях:
<% if mobile_device == "mobile" %>
//add extra parameter to check in model
<% form_tag :mobile_device, true %>
<% end %>
В вашей модели:
class User < ApplicationRecord
validate :password_for_web, if: :mobile_device?
validate :password_confirmation_for_web, if: :mobile_device?
def password_for_web
if !app_user && password.blank?
errors.add(:password, "can't be blank.")
end
end
def password_confirmation_for_web
if !app_user && password != self.password_confirmation=
errors.add(:password_confirmation, "doesn't match.")
end
end
def mobile_device?
mobile_device.present?
end
end
Вы также можете использовать драгоценные камни для проверки мобильного устройства, например:
https://github.com/fnando/browser
https://github.com/shenoudab/active_device
Если у вас есть отдельное мобильное приложение.
Добавьте дополнительный параметр в форму регистрации для мобильного приложения, как я использовал на мой взгляд с именем mobile_device
. Используйте обновленный код модели, и все готово.