私は何週間もの間、選択した国に応じて州のドロップダウン メニューにデータを入力するための解決策を見つけようと試みてきました。これを機能させるには、ある種のスクリプトを使用する必要があるようです。残念ながら、私は現代のスクリプトをまったく理解していません。私はjQueryを見てきましたが、それが何をしているのかわかりませんでした.
ユーザーが国と州に属する User モデルがあります。国には多くのユーザーと多くの州があります。州は国に属し、多くのユーザーがいます。
改訂された Dynamic Select Menu #88 ビデオにアクセスするために、RailsCasts を購読しました。
http://railscasts.com/episodes/88-dynamic-select-menus-revised
リビジョンが Rails の新しいバージョンに対応していないようです。その RailsCast でコードを使用しようとしたときに、Rails コードを少し変更する必要がありました。スクリプトはそのまま使用しましたが、Rails アプリに合わせてユーザーごとに変更しました。スクリプトは、選択した国の州がない場合、画面上の州情報を非表示にすることになっています。ある時点で、状態だけでなく、画面上のすべてのフィールドが非表示になりました。それ以外の場合は、国ごとにグループ化された州のリスト全体を取得しました。かなり悩んだ末、スクリプトを削除することにしました。編集/作成ページ全体が再び消えるのが怖いです。スクリプトが問題の原因であることを突き止めるのに、古いバージョンのアプリを復元するのに何時間もかかりました。
Ruby on Rails のコードはそれほど威圧的に見えなかったので、これを見ることにしました。ただし、このコードの一部がどこにあるのかわかりません。また、これを機能させるために他に行う必要があるかどうかもわかりません。カテゴリは国、サブカテゴリは州になります。ウィジェットは私のユーザーになります。少なくともこれは私がこれを見ている方法です。
http://samuelmullen.com/2011/02/dynamic-dropdowns-with-rails-jquery-and-ajax/
jQuery セクションでは、コードの 2 番目と 3 番目の部分が application.js にあるのか、それとも別の場所にあるのかわかりません。それが書かれている方法は、私はそう仮定します。ビューセクションでは、私の場合は国フォルダーであるカテゴリフォルダーの下にビューを作成するように指示されています。ビューフォルダーにユーザーフォルダーしかありません。この時点で、このビューをどこに置くかはわかりません。
new および edit でレンダリングされるパーシャルに collection_select ステートメントがあります。それが混乱を招くかどうかはわかりません。ページのソースを見たときにほとんど理解していないことから、どちらのページ (user_country_id、user_state_id) にも表示される ID、ラベルなどに違いは見られません。
可能であれば、状態の collection_select ステートメントに追加された where 句を使用してこれを行いたいと思います。country collection_select ステートメントで選択した値を参照できれば、私にとってはずっと簡単になります。私はこのようなことを考えています:
<%= collection_select(:user, :state_id, State.where(:country_id => user_selected_country_id).order('name'), :id, :name) %>
私が完全に道に迷っていると言うのは、非常に控えめな表現です。
どんな助けでも大歓迎です。