【问题标题】:Rails 3: How to make an Ajax call?Rails 3:如何进行 Ajax 调用?
【发布时间】:2011-07-13 22:04:37
【问题描述】:

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

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

你能给我介绍一些教程吗?

【问题讨论】:

标签: ruby-on-rails ajax ruby-on-rails-3


【解决方案1】:

真的很简单。在您看来,有一个像这样的链接/按钮。重要的一点是 :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')"

【讨论】:

    【解决方案2】:

    您实际上将使用两种技术来完成此任务:客户端的 javascript 和服务器端的 rails。

    一般的想法是您想要:

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

    我通过谷歌搜索找到了两篇文章: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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多