2017-09-27 7 views
0

In meiner Anwendung Erhalten habe ich Edelstein devise 4.2.0 & geocoder 1.4.3 & User Modell.Rails - Benutzer Land anmelden mit Devise & Geocoder Gems

In User Modell habe ich Spalten hinzugefügt country, latitude & longitude.

Was ich erreichen möchte, ist, Benutzer zu erhalten, wenn sie sich anmelden, mit current_sign_in_ip.

ps: da in der Entwicklung meiner IP-Adresse :: 1 wird I :my_ip Spalte Benutzer-Tabelle hinzugefügt haben, so kann ich IP manuell einfügen.

Ich habe versucht:

class User < ActiveRecord::Base 

    geocoded_by :my_ip 
    after_validation :geocode 

Aber es ist nicht das Land und die Breite & Länge sind leer bekommt.

ich auch versucht habe:

class User < ActiveRecord::Base 

    geocoded_by :country 
    after_validation :geocode 

Mit dieser Option hinzugefügt I Ländernamen manuell und diese zusätzliche Breite & Länge auf Benutzer-Tabelle.

Also frage ich mich, wie kann ich Benutzer Land mit current_sign_in_ip bekommen, wenn sie sich anmelden?

Antwort

0

try unten Code bekommen Land:

Gemfile

gem 'geocoder' 

app/Modell/user.rb

class User < ActiveRecord::Base 
    after_save do 
    self.country = request.ip 
    end 
end 
+0

Danke, @ puneet18. Muss ich nur 'after_save' hinzufügen? Muss ich auch 'geocoded_by' hinzufügen? Wegen gerade jetzt. Es gab mir nicht den Namen des Landes. – Rubioli

+0

In der Produktion, wenn ich einen Benutzer erstellen, bekomme ich diesen Fehler: ** undefined lokale Variable oder Methode 'Anfrage 'für # Meinst du? benötigen** – Rubioli

Verwandte Themen