1

ruby on rails のドロップダウンリストに xml ドキュメントのデータを入力する必要があります。

xml ドキュメントは次のようにフォーマットされます。

<Countries>
    <Country>
        <CountryCode>US</CountryCode>
        <CountryName>United States</CountryName>
    </Country>
    ...
</Countries>

次に、このコードを使用してハッシュに変換しようとしました:

<% countries_xml = File.read(".../countries.xml") %>
<% countries = Hash.from_xml(countries_xml) %>

そして、私は次のようなハッシュを得ました:

{"Countries"=>{"Country"=>[{"CountryCode"=>"US", "CountryName"=>"United States"}, ... ]}}

そして、このハッシュを使用してドロップダウンリストにデータを入力しようとしていますが、行き詰まっていると思います。私はこのように試しました:

<% user.select :country, countries["Countries"]["Country"].each %>

しかし、これはドロップダウンリストをハッシュで埋めるだけです。これは、countries オブジェクトがハッシュの配列のハッシュなどであるためです。CountryNames がドロップダウンリストにあり、ユーザーがフォームを投稿したときに CountryCodes が送信されるようにする必要があります。

4

1 に答える 1

1

select フォーム ビルダー メソッドのドキュメントを参照してください: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select

基本的に、選択のオプションの配列を構築するには、これを行う必要があります。

countries["Countries"]["Country"].collect { |c| [c['CountryCode'], c['CountryName'] }

また、その xml ファイルの読み取りメソッドと解析メソッドをビューから取り出して、コントローラーにポップしたり、クラス メソッドとしてモデルにポップしたりすることもあるでしょう。コードをより保守しやすくするのに役立ちますが、それは私の 2 セントです...

于 2012-06-26T23:09:12.990 に答える