Jay*_*ayC 5 forms ajax ruby-on-rails
在让表单助手工作之前,我使用下面的选择下拉列表:
<%= 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")
}
%>
Run Code Online (Sandbox Code Playgroud)
这完全可以调用我的filter_by_city.js.erb并更新其他一些值.使用firebug进行检查表明它具有数据远程等属性.
但是,更改为下面的form_for帮助程序,我没有数据远程,因此没有AJAX调用.
<%= f.collection_select(:city_id,
City.all, :id, :name,
:data => { :remote => true,
:url => url_for(:controller => "locations",
:action => "filter_by_city")
}
)
%>
Run Code Online (Sandbox Code Playgroud)
下拉列表与之前完全一致(并且参数得到了一些混乱),但它除了设置参数值之外没有任何功能.
我尝试包装:{}中的数据(来自法国论坛,但这不是治愈方法.
我认为这是一个新手的错误,但任何帮助找到它将是最受欢迎的.
谢谢
:: le叹::
当使用collection_select时,与RoR的某些部分不同,似乎按顺序包含所有参数有点挑剔.即使我可以(并继续)遗漏:post,解决方案结果是包含一个空集的选项,并包装:{} in {} for html_options.
所以,这是有效的:
<%= f.collection_select(:city_id,
City.all, :id, :name, {},
{:data => { :remote => true,
:url => url_for(:controller => "locations",
:action => "filter_by_city")
}
}
)
%>
Run Code Online (Sandbox Code Playgroud)
注意{}之后:name和{开始下一行.
外卖消息 - 如果包含html_options,则选项不可选.
| 归档时间: |
|
| 查看次数: |
1952 次 |
| 最近记录: |