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

私の意見は、国のリストをデータベースにシードすることです。

フィールド 'name' でモデル国を作成します。

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

過去に国選択機能を提供するために使用されたレール。この機能はコアから抽出され、country_selectプラグインにパッケージ化されました。

プラグインを使用して機能を有効にします。

于 2012-07-09T09:44:27.850 に答える