按省或州统计注册用户 Geocoder RoR
Count registered users by province or state Geocoder RoR
有没有什么方法可以根据 devise
和 geocoder
的省份或州(加拿大或美国)来统计用户数量?已尝试 google 但未找到解决方案。
user.rb
:
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
# attr_accessible :address, :latitude, :longitude
geocoded_by :address
after_validation :geocode, if: ->(obj){ obj.address.present? and obj.address_changed? }
# Mandatory fields
validates_presence_of :first_name
validates_presence_of :last_name
validates_presence_of :business_name
end
我想要得到的例子:
- 安大略省:89
- 加利福尼亚州:32
- 魁北克:382
- 等...
我认为没有本地方法可以做到这一点。实现方法来做你想做的事:
class User < ApplicationRecord
# your stuff...
def city
lat_lon = "#{latitude},#{longitude}"
Geocoder.search(lat_lon).first
end
def self.grouped_by_city
group_by{ |user| user.city }.map{|k,v| [k, v.count]}.to_h
end
end
那么您可以拨打:
User.all.grouped_by_city
User.where(some_finder: some_value).grouped_by_city
有没有什么方法可以根据 devise
和 geocoder
的省份或州(加拿大或美国)来统计用户数量?已尝试 google 但未找到解决方案。
user.rb
:
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
# attr_accessible :address, :latitude, :longitude
geocoded_by :address
after_validation :geocode, if: ->(obj){ obj.address.present? and obj.address_changed? }
# Mandatory fields
validates_presence_of :first_name
validates_presence_of :last_name
validates_presence_of :business_name
end
我想要得到的例子: - 安大略省:89 - 加利福尼亚州:32 - 魁北克:382 - 等...
我认为没有本地方法可以做到这一点。实现方法来做你想做的事:
class User < ApplicationRecord
# your stuff...
def city
lat_lon = "#{latitude},#{longitude}"
Geocoder.search(lat_lon).first
end
def self.grouped_by_city
group_by{ |user| user.city }.map{|k,v| [k, v.count]}.to_h
end
end
那么您可以拨打:
User.all.grouped_by_city
User.where(some_finder: some_value).grouped_by_city