0

我想在我的 Rails Web 表单中包含国家/地区选择框。在 Ruby on Rails 中怎么可能?我的表格是这样的

<%= form_for :User, :url => {:action => :create } do |f| %>              
  <div class="field">
    <%= f.label :select_countries %><br />
    <%= f.select(:countries, country_list)  %>
  </div>
  <%= f.submit "Create" %>
<% end %>

我可以包含什么来代替 country_list?

4

3 回答 3

4

我的意见是在数据库中播种国家列表。

使用字段“名称”创建一个模型国家。

在 app/models/country.rb

attr_accessible :name

将 YAML 文件中的国家/地区列表和种子加载到数据库中。

在 config/country.yml

-
 name: India
 name: Pakistan
 name: Cuba
 #add required country name

在 db/seed.rb

COUNTRIES  = YAML.load_file(Rails.root.join('config/country.yml'))
COUNTRIES.each do |country|
  Country.create(country)
end

rake db:seed

在您的用户模型中添加 country_id 字段(编写迁移以添加字段)。

在 app/models/user.rb

class User < ActiveRecord::Base
 #associate user with country
 belongs_to :country
end

在您的新用户表单中添加以下代码。

 <%= f.select :country_id, Country.all.collect { |country| [country.name, country.id] },
  { :prompt => "Select Country" } %>
于 2012-07-09T09:59:31.480 回答
2
<%= f.country_select :country, ["United States"] %>

它确实适用于 country_select gem

于 2012-08-29T11:39:33.587 回答
1

Rails 过去曾提供国家选择功能。该功能已从核心中提取出来,现在已打包到country_select插件中。

使用插件启用该功能。

于 2012-07-09T09:44:27.850 回答