在使用rails选择更改时调用控制器和方法

时间:2013-12-03 18:11:37

标签: ruby-on-rails ruby ajax

我想在选择更改时调用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>

任何想法我做错了什么?

2 个答案:

答案 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,否则会将这个帮助器添加回你的轨道。