Όταν συνδεθείτε στην εφαρμογή, η παρακάτω κωδικό παίρνει ονομάζεται. Έτσι, μέσα στο SessionsController, SignupHistory τραπέζι παίρνει συμπληρωθεί με τη .createμέθοδο.
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
helper_method :current_user
before_action :set_timezone, :current_country
def current_country
if session[:ip_country_code].present?
return @current_country = session[:ip_country_code]
end
use_default = request.location.nil? || request.location.country_code.blank? || request.location.country_code == 'RD'
country_code = use_default ? ENV['DEFAULT_IP_COUNTRY_CODE'] : request.location.country_code
@current_country = session[:ip_country_code] = country_code
end
end
sessions_controller.rb
class SessionsController < ApplicationController
def save_signup_history(member_id)
SignupHistory.create(
member_id: member_id,
ip: request.ip,
accept_language: request.headers[Accept-Language],
ua: request.headers[User-Agent],
login_location: request.location
)
end
end
χαρακτηριστικά της βάσης δεδομένων
Ωστόσο, αντί της γραμμής login_location: request.locationγια να γράψετε τη θέση της ΠΕ συνδεθείτε στη βάση δεδομένων, όπως New York, τι έχω στη βάση δεδομένων είναι:
--- ρουμπίνι / αντικείμενο: Geocoder :: Αποτελέσματα :: Ipstack στοιχεία: ip: 127.0.0.1 COUNTRY_NAME: Reserved COUNTRY_CODE: RD cache_hit:
Πώς μπορώ να αποθηκεύσετε θέση με βάση την IP συνδεθείτε στη βάση δεδομένων μου














