0

サービスモデルから入力されたドロップダウンを作成できました。サービス モデルは MySQL テーブルから管理されます。私はこのコードを使用しました:

f.input :service, :as => :select #<-- :as not really needed, I know...

サービス選択の下に、ユーザーがサービス選択から選択したものに基づいて、チーム モデル (MySQL データベースのチーム テーブル) からのチームで埋められた別の選択ボックスが必要です。

たとえば、サービス 1 がサービス選択から選択された場合、チーム選択には、データベースのチーム テーブルで service_id = 1 の外部キーを持つチーム (チーム 1、チーム 2) が入力されます。これを達成するために正しい関連付けと Formtastic コードを挿入する方法を誰かが手伝ってくれたら、私は大いに感謝します。

4

1 に答える 1

1

別の選択ボックスで行われた選択に基づいて、ある選択の内容を変更する (オプションの数を減らす) 必要がある場合、これは主にクライアント側のプログラミングの問題です — Formtastic は、一度ブラウザーに送信された DOM を変更できません。

サービス選択の変更を監視する JS と、その選択に基づいて何らかの方法でチーム選択を変更する JS が必要です。このために、ここには多くのオプションがありますが、JS が機能するように正しいマークアップをレンダリングする方法を除いて、実際には Formtastic の問題ではありません。

過去に、私はこれらすべてをさまざまな時期に行ってきました。

  1. 可能なサービス選択ごとに個別のチーム選択ボックスをレンダリングし、必要に応じて DOM で正しいものを JS で表示/非表示にする

  2. チーム選択の各オプションでデータ属性をレンダリングし、選択したサービスに基づいてJSがオプションを削除または無効にできるように、サポートするサービスに注意します

私は #2 の方が好みですが、Formtastic 内ではおそらく #1 の方が簡単です。

于 2013-02-25T06:12:50.480 に答える