Rails 2到Rails 3:使用link_to而不是link_to_remote(包括远程和更新)

时间:2011-04-01 09:57:15

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

我确信这是一个快速简单的答案。 我正在将Rails项目从版本2升级到版本3,并根据Rails 3更新用link_to替换link_to_remote的加载。甚至可以这么简单:

<%= link_to "Check Time",
        {:action=>:get_time}, :remote=>true, :update=>'current_time' %>
<div id='current_time'></div>

似乎不起作用。请求(使用get方法)正常,渲染的html为:

<a href="/monitoring/get_time" data-remote="true" update="current_time">Check Time</a> 

Routes.rb条目:

get "monitoring/get_time"

正如我所说,我确信这对我来说是一个非常明显的问题!

2 个答案:

答案 0 :(得分:17)

:update不支持link_to :remote => true选项。

你要么必须

  • 使用legacy plugin
  • 自己编写JS / AJAX,而不是使用:remote => true
  • 使用render :update { |page| p.replace_html ... }

答案 1 :(得分:7)

:update参数消失了。您需要使用Unobtrusive JavaScript自行处理DOM更新。另外,请确保在布局中实际包含csrf_meta_tag帮助程序。

我写了一篇关于using unobtrusive JavaScript in Rails 3的文章。