使用AJAX更新rails部分

时间:2010-03-23 12:24:15

标签: ruby-on-rails ajax partial-views

我是新手在Rails中使用AJAX(我知道......我知道......),并且肯定我做错了什么可能只是错误的调用或者某事。但我已经找到了,似乎无法找到它。

无论如何,我正在快速部分渲染(这是正常的),然后我想用AJAX调用刷新它。以下是我认为可行的方法:

<div id="two_on_two"><%= render :partial => "quickread" %></div>
<p><%=link_to_remote "load two new stories", :url => {:partial => 'quickread'}, :update => 'two_on_two' %></p>

只是吹出页面(快速闪烁然后只是一个空白的浏览器窗口)。如果我在AJAX调用中从:partial切换到:action,那么它会在该two_on_two div中动态加载“模板缺失”。

显然,我在这里很容易找到一些东西,对吗?

非常感谢你!

1 个答案:

答案 0 :(得分:2)

首先,阅读api:

  

http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/link_to_remote

您应该正确指定您的网址(控制器,操作,其他参数,而不是部分!)并在控制器操作中定义您的RJS。

IE: index.html.erb

<div id='two_on_two'></div>
link_to_remote 'Link Name', :url => {:controller => "bar", :action => "baz"}

bars_controller.rb

def baz
  respond_to do |format|
    format.js{ render :update do |page|
      page.replace_html 'two_on_two', 'Hello world!'
    end}
  end
end

因此,当您单击“链接名称”时,在您的two_on_two div中将显示“Hello world text”。