加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails form_for collection_select忽略select_

发布时间:2020-12-17 03:35:43 所属栏目:百科 来源:网络整理
导读:在让表单助手工作之前,我使用下面的选择下拉列表: %= 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") }% 这完全可以调
在让表单助手工作之前,我使用下面的选择下拉列表:

<%= 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进行检查表明它具有数据远程等属性.

但是,更改为下面的form_for帮助程序,我没有数据远程,因此没有AJAX调用.

<%= f.collection_select(:city_id,City.all,:id,:name,:action => "filter_by_city")
                }
    )
%>

下拉列表与之前完全一致(并且参数得到了一些混乱),但它除了设置参数值之外没有任何功能.

我尝试包装:{}中的数据(来自法国论坛here,但这不是治愈方法.

我认为这是一个新手的错误,但任何帮助找到它将是最受欢迎的.

谢谢

解决方法

:: le叹::

当使用collection_select时,与RoR的某些部分不同,似乎按顺序包含所有参数有点挑剔.即使我可以(并继续)遗漏:post,解决方案结果是包含一个空集的选项,并包装:{} in {} for html_options.

所以,这是有效的:

<%= f.collection_select(:city_id,{},{:data => {  :remote => true,:action => "filter_by_city")
                }
        }
    )
%>

注意{}之后:name和{开始下一行.

外卖消息 – 如果包含html_options,则选项不可选.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读