我意识到这在我的问题措辞方式上是不可能的,但是有没有办法仍然得到我正在寻找的结果。
在 Rails 3.2 应用程序中,我有一个包含 City 和 Location 字段的表单:
<%= f.select :city, City.all, :prompt => "Select..." %>
<%= f.input :location_name, :input_html => { data:{ autocomplete_source: Location.order(:name).map(&:name) } } %>
location 字段使用 Twitter Bootstrap 的 typeahead 功能来显示条目的自动完成列表。
一个位置属于一个城市。我想根据用户选择的城市值过滤自动完成条目列表。
基本上,我需要动态改变
... autocomplete_source: Location.order(:name).map(&:name) ...
至
... autocomplete_source: Location.where('city_id => ?', '@myform.city.id').order(:name).map(&:name) ...
在咖啡脚本中,我可以执行以下操作:
jQuery ->
$('#myform_city_id').change ->
$('#myform_location_name').attr('data-autocomplete-source','#{Location.where(city_id: @myform.city_id).order(:name).map(&:name)}')
但是没有调用活动记录查询,它只是作为字符串传入。
使用新查询动态更改此 autocomplete-source 属性的最佳方法是什么?