0

Railsアプリにcountries gemがインストールされており、このように選択したコレクションを作成したかった

  <%= f.collection_select :country, Country.all, :id, :name %>

しかし、それは私にこのエラーを与えています(最初の国のために)。

undefined method `name' for ["Andorra", "AD"]:Array.

この宝石を使用してコンソールで Country.all を実行すると、このような国の配列が作成されます

Country.all

=> [["Andorra", "AD"], ["United Arab Emirates", "AE"], ["Afghanistan", "AF"], ["Antigua and Barbuda", "AG"], ["Anguilla", "AI"], ["Albania", "AL"], ["Armenia", "AM"], ["Netherlands Antilles", "AN"], ["Angola", "AO"], ["Antarctica", "AQ"], ["Argentina", "AR"], ["American Samoa", "AS"], ["Austria", "AT"], ["Australia", "AU"], ["Aruba", "AW"], ["Åland Islands", "AX"], ["Azerbaijan", "AZ"], 

このような国のインスタンスを作成すると、2 文字のコードが渡されます

>> c = Country.new('US')

その後、 name メソッドを取得できます

>> c.name
=> "United States"

宝石でコレクションを選択する方法がわからなかったため、国の宝石でそれをやろうとしていますcountries_select。国の宝石で問題を解決する方法を教えてもらえない場合は、countries_select 宝石で解決する方法を教えてください。

4

1 に答える 1

0

gem 'country_select' をインストールして、選択タグをレンダリングするヘルパーを提供できます。モデル名と属性名を渡すと、選択ボックスがレンダリングされます。ユーザーモデルと国の属性がある場合は、書き込みます

<%= country_select(:user, :country) %>

そしてそれは生み出すでしょう

<select id="user_country" name="user[country]"><option value="Afghanistan">Afghanistan</option>
<option value="Åland Islands">Åland Islands</option>
<option value="Albania">Albania</option>
....
</select>

https://github.com/hexorx/countries

https://github.com/stefanpenner/country_select

于 2013-08-17T18:16:50.373 に答える