Rails 3:如何进行Ajax调用?

我想在我的页面上有一个链接(有更好的选项吗?),点击后会发出Ajax请求。 (我想在点击链接时更新数据库中的字段。)

实现这一目标的最简单方法是什么?

你能给我推荐一些教程吗?

真的很简单。 在您的视图中,有一个像这样的链接/按钮。 重要的是:remote => true

<%= link_to 'Update Thingy', update_thingy_path, :confirm => 'You sure you wanna update?', :remote => true %> 

要么

 <%= button_to('Update Thingy', {:action => 'update_thingy', :thingyid => 314}, :method => :get, :remote => true) %> 

显然,你必须得到update_thingy_path以正常解决某些操作。 不同之处在于渲染时您将渲染一些* .js.erb而不是* .html.erb。 在update_thingy.js.erb中,您只需在客户端中放置要运行的任何JavaScript。 您可能想要通知用户更新发生在例如(在jQuery中):

 $('#notice').html("Thingy was update.") 

或者,如果您返回的任何javascript非常简单,那么在控制器中您可以执行以下操作,而不是使用整个js.erb进行单行程。

 render :js => "alert('Blah')" 

您真的将使用两种技术来实现这一目标:客户端的javascript和服务器端的rails。

一般的想法是你想:

(1)使用rails在服务器端添加Web方法,然后
(2)使用类似jQuery的东西让你的客户端js调用到服务器来触发web方法。

我通过Google搜索找到的两篇文章:rails3 ajax

http://www.stjhimy.com/posts/7-creating-a-100-ajax-crud-using-rails-3-and-unobtrusive-javascript

http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/

使用jQuery的ajax post()方法的API参考:
http://api.jquery.com/jQuery.post/