树形结构经常遇到,比如"省-市-区"之类的.而在做页面时有时需要以联运下拉框的方式来显示.自己动手做还是挺麻烦的.Google了一下,居然没找到一个可用的工具.于是自己写了一个插件, 就叫tree_select. 放在github
目前主要功能有:
1 可自定义结构
2 可即时添加元素
3 表单辅助方法
先决条件:
tree_select 依赖 acts_as_tree 插件.
安装:
ruby script/plugin install git://github.com/wanglian/tree_select.git
使用:
1 定义结构
ruby ruby script/generate tree_select region Country State City
2 run migration
rake db:migrate
3 修改 routes.rb, 添加一行:
map.resources :regions
4 view中使用,确保包含了相关的JS文件
<%= javascript_include_tag :defaults %>
然后可在表单中这么用:
<% form_for @user do |f| %>
...
<%= region_select "user[region_id]" %>
...
<% end %>
表单辅助方法有两个选项:
readonly - 是否允许即时添加元素
complete_must - 是否必须选择所有的下拉框.
示例有一个在这里