gpt4 book ai didi

ruby-on-rails - Rails form_for collection_select 忽略 select_tag 接受的远程 ajax 调用

转载 作者:行者123 更新时间:2023-12-02 10:44:08 24 4
gpt4 key购买 nike

在让我的表单助手工作之前,我使用以下内容作为我的选择下拉列表:

<%= 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,但这不是解决办法。

我认为这是一个新手错误,但如果能帮助找到它,我们将不胜感激。

谢谢

最佳答案

::叹息::

当使用collection_select时,与RoR的某些部分不同,按顺序包含所有参数似乎有点挑剔。尽管我可以(并继续)省略 :post,但解决方案结果是包含一个空的选项集,并将 :data 包装在 html_options 的 {} 中。

所以,这就是有效的:

<%= f.collection_select(:city_id, 
City.all, :id, :name, {},
{:data => { :remote => true,
:url => url_for(:controller => "locations",
:action => "filter_by_city")
}
}
)
%>

请注意 :name 之后的 {} 和下一行开始的 {。

要点消息 - 如果包含 html_options,则选项不是可选的。

关于ruby-on-rails - Rails form_for collection_select 忽略 select_tag 接受的远程 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9680893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com