我的Rails应用程序中有两个字段:语言和字。单词表格非常大,因此我希望通过选择语言来筛选选择。以下是编辑视图中的代码,您可以在第二个 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 dependent collection_select fields in form
Rails代码是否可以评估:language_id 的选择值?
答案 0 :(得分:1)
假设包含字段的对象是Article:
= f.select :word_id, Word.where(:language_id => @article.language_id).map {|w| [w.name, w.id]}