我想在选择更改时调用AJAX查询。 我找到了这个代码片段,但它在rails 4上没有用,或者我做错了
<%= f.select(:resource_id, Resource.all.collect {|resource| [ resource.name, resource.id ] }, :class => "medium", :onchange => remote_function(:url => {:controller => 'controller', :action => 'action'})) %>
并发现此错误
undefined method `remote_function' for #<#<Class:0x007f3daff24a88>:0x007f3d9c670210>
任何想法我做错了什么?
答案 0 :(得分:2)
这应该给你一个提示:
<%= f.select(:resource_id, Resource.all.collect {|resource| [ resource.name, resource.id ] }, :class => "medium" %>
#javascript code to make an Ajax call:
$('select#your_model_name_resource_id').on('change', function(event) {
var selected_resource_id = $(this).val();
$.ajax('/relative/path/to/your/action', data: { id: selected_resource_id })
})
当用户更改select的值时,它应该在此位置向您的服务器执行Ajax请求:/relative/path/to/your/action?id=12
(如果选择了id为12)
答案 1 :(得分:1)
已弃用remote_function
并已从rails中删除。你现在需要写一些javascript(非常简单)。
除非你愿意安装prototype-rails gem,否则会将这个帮助器添加回你的轨道。