中国省市区县数据库,包含行政编码,邮政编码,地区拼音和简拼
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app 优化 city_picker 标签 Apr 26, 2017
db/migrate
lib
spec
vendor/assets 添加 city-picker 支持 Apr 25, 2017
.gitignore 添加 city-picker 支持 Apr 25, 2017
Gemfile
Gemfile.lock
README.md
Rakefile
chinese_regions_rails.gemspec

README.md

chinese_regions_rails

中国省市区县数据库,包含 行政编码,邮政编码,地区拼音和简拼。 数据来源 https://github.com/xixilive/chinese_regions_db 。 支持 active_record 和 mongoid 。

安装

Gemfile

gem 'chinese_regions_rails'

Copy migrations

rails g chinese_regions:install

db migration and seed

rake db:migrate
rake db:seed:regions

使用

直接使用 Region model

class User < ActiveRecord::Base
  belongs_to :city, class_name: "ChineseRegions::Region"
end

使用 city-picker 作为表单输入

application.css 添加下面代码

*= require city-picker

application.js 中在 jQuery 后面引入文件

//= require city-picker.data
//= require city-picker
//= require chinese-regions

表单里可以使用 city_picker_tag(method, value, options)city_picker(method, options), 这两个标签只是简单的封装,options 可以传入任何东西, 比如 city-picer 的 level 和 simple 选项可以通过 data 传入 data: { level: :city, simple: true }

<%= form_tag do %>
  <div style="position: relative;">
    # Region model
    <%= city_picker_tag :city_id, @user.city %>
    # Regoin id
    <%= city_picker_tag :city_id, "610101", data: { level: :city } %>
  </div>
<% end %>

<% form_for @user do |f| %>
  <div style="position: relative;">
    <%= f.city_pciker :city_id %>
  </div>
<% end %>

Region model

class ChineseRegions::Region < ActiveRecord
  belogns_to :parent # 上级 region
  has_many :children # 下级 region
end

model 包含的属性

  • id
  • parent_id
  • level
  • name
  • alias
  • pinyin
  • abbr
  • zip

Change log

  • v1.0.0

    Break Change

    • 直接使用 engine 里的 ChineseRegions::Region model,而不是添加 model 到用户项目
    • 引入 city-picker
  • v0.1.*

    修改 Sqlite3 数据源到 json

  • v0.0.*

    生成 Region model 到用户项目