在让我的表单助手工作之前,我使用以下内容作为我的选择下拉列表:
<%= select_tag :city_id,
options_for_select( City.all.collect{|c| [c.name,c.id]} ),
:data => { :remote => true,
:url => url_for(:controller => "locations",
:action => "filter_by_city")
}
%>
这非常适合调用我的 filter_by_city.js.erb 并更新一些其他值。使用 firebug 检查表明它具有 data-remote 等属性。
然而,更改为下面的 form_for 助手,我没有得到数据远程,因此没有 AJAX 调用。
<%= f.collection_select(:city_id,
City.all, :id, :name,
:data => { :remote => true,
:url => url_for(:controller => "locations",
:action => "filter_by_city")
}
)
%>
下拉列表的显示与以前完全相同(并且需要对参数进行一些混乱才能实现),但除了设置参数值之外,它没有任何功能。
我尝试将 :data 包装在 {} 中(来自法国论坛here http://www.developpez.net/forums/d1159153/autres-langages/autres-langages/ruby/rails-3-1-collection_select-remote-true/但这不是治疗方法。
我认为这是一个新手错误,但如果能找到它,我们将不胜感激。
Thanks