在项目中遇到了这个需求:用户注册时从下拉框中选择一个国家,然后联动,再选加一个下拉框中选择相应的省份地区。
之前没有在网上找找资料,直接自己干活,很是郁闷,所以的基础信息都是我一个人填进数据库的,发现自己很bc
今天我在github上面好好找了一下,发现了一个很好的解决方案。
region_updater插件
http://github.com/tolatomeow/region_updater/tree/master
另外,它依赖rails官方的country_select插件
http://github.com/rails/country_select/tree/master
将这两个插件从github上拉下来,将它放在插件目录中。
使用方法:
说明:对于users表中应该有country和region两个string类型的字段
==> Requirements
1) Ruby on Rails 2.1 (tested on version 2.1, may work with prior versions)
2) Prototype 1.6 javascript framework
执行
script/generate region_updater命令,它的作用是将两个js放在public/javascripts目录下面
然后在/app/views/users/new.html.erb文件中或者模板文件中将js引进
<%= javascript_include_tag :all %>
然后在form_for的代码块中,加上
<%= region_country_select( :user, :country) %>
<%= region_update_label %>
<%= region_update_select_tag( 'user[region]') %>
一切都搞定了,收工。
ps,这个插件可没有将全世界所有的国家的地区全都给你写出来,你可以进入
/vendor/plugins/region_updater/generators/region_updater/countries目录,将default.yaml复制一份,命名为custom.yaml,然后自己填写国家和地区信息,然后再执行
script/generate region_updater命令,即可。
为防止,插件有更新和变动之类的,我将目前可以正常使用的这两个插件打包,发上来,在附件中。