1. Giới thiệu
Khi làm dự án đôi lúc chúng ta phải đối mặt với vấn đề liên quan đến thông tin của các Quốc Gia khác nhau. Và đương nhiên bạn có thể search google thông tin của quốc gia bạn cần rồi tự thêm vào dự án của mình. Tuy nhiên, việc này sẽ tốn nhiều time của bạn.
Để giải quyết vấn đề này, hôm nay mình sẽ giới thiệu cho các bạn biết về gem countries
Nó là một tập hợp tất cả các thông tin hữu ích của mọi quốc gia trong tiêu chuẩn ISO 3166
. Nó chứa thông tin:
- Quốc gia theo tiêu chuẩn ISO 3166-1
- Tiểu bang / phân khu theo tiêu chuẩn ISO 3266-2
- Tiền tệ theo tiêu chuẩn ISO 4217
- Số điện thoại theo tiêu chuẩn E.164.
Từ những thông tin trên thì về cơ bản chúng ta đã giải quyết được những vấn đề liên quan đến Quốc gia trong dự án của mình rồi.
2. Cài đặt
- Cách 1:
gem install countries
- Cách 2:
Thêm vào Gemfile:12gem 'countries'
và chạy12bundle install
3. Lấy thông tin của Quốc Gia
Đầu tiên là khởi tạo object Quốc Gia và từ đó bạn có thể lấy được các thông tin khác liên quan đến Quốc Gia này
1 2 |
united_states <span class="token operator">=</span> <span class="token constant">ISO3166</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token constant">Country</span><span class="token punctuation">.</span><span class="token keyword">new</span><span class="token punctuation">(</span><span class="token string">'US'</span><span class="token punctuation">)</span> |
3.1 Mã quốc gia
Thông thường dùng 2 loại sau: alpha2, alpha3
1 2 3 |
united_states<span class="token punctuation">.</span>alpha2 <span class="token comment"># => "US"</span> united_states<span class="token punctuation">.</span>alpha3 <span class="token comment"># => "USA"</span> |
3.2 Name
1 2 |
united_states<span class="token punctuation">.</span>name <span class="token comment"># => "United States"</span> |
3.3 Location
Thông tin liên quan đến location
1 2 3 4 5 6 7 8 |
united_states<span class="token punctuation">.</span>latitude <span class="token comment"># => "38 00 N"</span> united_states<span class="token punctuation">.</span>longitude <span class="token comment"># => "97 00 W"</span> united_states<span class="token punctuation">.</span>latitude_dec <span class="token comment"># => 39.44325637817383</span> united_states<span class="token punctuation">.</span>longitude_dec <span class="token comment"># => -98.95733642578125</span> united_states<span class="token punctuation">.</span>region <span class="token comment"># => "Americas"</span> united_states<span class="token punctuation">.</span>subregion <span class="token comment"># => "Northern America"</span> |
3.4 Thông tin Phân khu/ Tiểu bang
1 2 3 |
united_states<span class="token punctuation">.</span>subdivisions <span class="token comment"># Phân khu</span> united_states<span class="token punctuation">.</span>states <span class="token comment"># Tiểu bang</span> |
3.5 Timezone (optional)
Để xác định được timezone thì cần cài đặt thêm gem tzinfo
vì gem countries
không support phần này
Sau khi cài đặt ta có thể get những thông tin thường gặp sau:
1 2 3 4 |
united_states<span class="token punctuation">.</span>timezones<span class="token punctuation">.</span>zone_identifiers united_states<span class="token punctuation">.</span>timezones<span class="token punctuation">.</span>zone_info united_states<span class="token punctuation">.</span>timezones |
3.6 Thông tin về phone number
1 2 3 4 5 6 |
united_states<span class="token punctuation">.</span>country_code <span class="token comment"># => "1"</span> united_states<span class="token punctuation">.</span>national_destination_code_lengths <span class="token comment"># => 3</span> united_states<span class="token punctuation">.</span>national_number_lengths <span class="token comment"># => 10</span> united_states<span class="token punctuation">.</span>international_prefix <span class="token comment"># => "011"</span> united_states<span class="token punctuation">.</span>national_prefix <span class="token comment"># => "1"</span> |
Kết luận
Vì nó là 1 loại spec đặc thù liên quan đến Quốc gia. Nên có thể bạn sẽ chưa thấy cần thiết khi dùng.
Tuy nhiên hi vọng có thể nhớ đc key word gem countries
để khi cần. có thể tìm ra gem support này 1 cách nhanh chóng.