使用Rails 3 link_to进行ajax回调的正确方法是什么

时间:2012-03-11 13:00:51

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

这是场景。

要点: 我有一个解决方案,但我想知道这是否是在Rails 3中使用AJAX回调的最佳方法。

问题: 我有一个链接,点击它时应该使用AJAX来更新页面上现有的html元素(在我的例子中是div):

<div id="project_content">Change Goes here</div>

我的解决方案 在我的projects/show.html.erb

  true}%&gt;

我的TasksController如下:

class TasksController < ApplicationController
    def index
        respond_to do |format|
              format.html
              format.js { render action: "index", script: true }
        end
    end
end

在我的tasks/index.js.erb我有

  

$(“#project_content”)。html(“&lt;%= escape_javascript(render:partial =&gt;'tasks')%&gt;”);

问题: 这一切都有效。但为什么我必须做所有这些?是不是(或者没有)一个解决方案,让我们所有人都可以简单地做到这一点

<%= link_to "tasks", project_tasks_path(@project), {:remote=>true, :update=>"project_content"} %>

然后,这会将tasks/index.js.erb加载到键:update引用的任何元素中?

2 个答案:

答案 0 :(得分:0)

您正试图从旧的Rails 2.3重新发明link_to_remote。这种解决方案通常过于复杂和僵化。

答案 1 :(得分:0)

我找到了答案here

令人遗憾的是,此功能已从Rails 3中删除。