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

det*_*e02 8 ruby ajax ruby-on-rails link-to ruby-on-rails-3

我敢肯定,这是一个快速简单的答案.我正在将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>
Run Code Online (Sandbox Code Playgroud)

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

<a href="/monitoring/get_time" data-remote="true" update="current_time">Check Time</a> 
Run Code Online (Sandbox Code Playgroud)

Routes.rb条目:

get "monitoring/get_time"
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*rth 17

:update新的不支持该选项link_to :remote => true.

你要么必须要

  • 使用旧版插件
  • 自己编写JS/AJAX而不是使用 :remote => true
  • 使用 render :update { |page| p.replace_html ... }

  • 您不需要完全替换:remote => true.使用它,并绑定来自rails.js的内置回调事件:'ajax:before','ajax:complete','ajax:success','ajax:failure'. (6认同)

Sim*_*tti 7

:update参数已经一去不复返了.您需要使用Unobtrusive JavaScript自行处理DOM更新.另外,请确保csrf_meta_tag在布局中实际包含帮助程序.

我写了一篇关于在Rails 3中使用不引人注目的JavaScript的文章.

  • 请注意`Rails!= Ruby`. (3认同)