1

Rails アプリケーションには、 languagewordの 2 つのフィールドがあります。単語テーブルは非常に大きいので、言語の選択によって選択をフィルタリングしたいと思います。以下は編集ビューのコードで、2 番目のcollection_selectで言語をハードコーディングした方法がわかります。

.field
  = f.label :language_id
  = f.collection_select :language_id, Language.find(:all,:conditions => ["supported = 't'"]),:id,:language_code, include_blank: false, :title => 'Language'
.field
  = f.label :word
  = f.collection_select :word_id, Word.find(:all,:conditions => ["language_id = 2"]), :id, :word, include_blank: false, :title => 'Word'

同様の質問が SO に投稿されましたが、提供された解決策は AJAX を使用することでした。ユーザーが言語を選択できるようになった後に条件を追加して、データベースの負荷を軽減したいと考えています。 フォーム内の Rails 依存の collection_select フィールド

Rails コードが:language_idの選択された値を評価することは可能ですか?

4

1 に答える 1

1

フィールドを含むオブジェクトが Article であると仮定します:

= f.select :word_id, Word.where(:language_id => @article.language_id).map {|w| [w.name, w.id]}
于 2013-01-09T15:17:06.800 に答える