• ベストアンサー

Ruby on Rails でプルダウン

Ruby on Rails でプルダウンを使ったページを作ってます。 プルダウンを選択すると、別のプルダウンの内容が変更されるというものです。 それ自体はjavascriptを使えばできるのですが、プルダウンの内容はDBに保存されてあるものから引っ張って使いたいと思ってます。 javascriptではDBの内容は引っ張ってこれないと思うのですが、 Railsでこういうことができるのでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>javascriptではDBの内容は引っ張ってこれないと思うのですが、 Railsでこういうことができるのでしょうか。 手軽にできるようです。コントローラの中で、def newやdef editの直後に @categories = Category.find(:all); のようにしてプルダウンの情報を読み込んで、 <%= options_from_collection_for_select @categories, "id", "category", @item.category_id %> のような記述を<select id='item_category_id' name='item[category_id]'> ・・・</select>の間に入れるとOKみたいです。(変数等は、参考文献のもので、実際は変わります) 参考文献は、Four Days on Rails2.0 (http://rails.to/pages/4daysonrails2)です。

arumitsuku
質問者

お礼

回答ありがとうございます。 例えば、都道府県の一覧セレクトと、市一覧のセレクトがあるとします。 この市一覧は都道府県のセレクトを変えると内容がその都道府県にあわせたものに変わります。 都道府県と市はどちらもDBに保存されてあります。 選択した都道府県idをキーにして市DBからfindした結果を市一覧セレクトのオプションとしたいのです。 教えて頂いたものだと都道府県セレクトは作成できてもその子の市一覧セレクトは作成できない気がするのですが…

その他の回答 (1)

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.2

>>教えて頂いたものだと都道府県セレクトは作成できてもその子の市一覧セレクトは作成できない気がするのですが… すいません。質問をよく読んでいませんでした。確かに一段階目しか対応しないですね。 で、ちょっと調べてみましたが、JavaScriptを駆使して実現する方法があるようです。 でも、この方法は、RubyonRailsらしさが無い気がするのと、そのJavaScriptコードを見ると吐き気がする気もして調べなおしましたら、Ajaxを使う事例が以下のページにありました。 ------------------------------------------------ selectボックスとAjaxCommentsAdd Star http://d.hatena.ne.jp/itoasuka/20060411/1144741664 ------------------------------------------------ 私はまだ試していませんが、このブログの内容は、都道府県と市郡のselectボックスの話なので、質問内容にずはり答えているように思えましたが、どうでしょう?

arumitsuku
質問者

お礼

回答ありがとうございます。 observe_fieldで、思った動作ができました! コードもシンプルで見やすくて良いですね。 ありがとうございました。