使用rjs混淆link_to_remote

时间:2011-01-01 00:06:48

标签: ruby-on-rails ajax rjs link-to-remote

我的应用程序布局包含导航div,以及构造为部分的内容div。我想使用ajax,这样每当一个人点击导航div中的链接时,该页面的内容就会在内容div中呈现,而不会刷新。我对如何正确地做到这一点感到困惑...任何有关铁路noob的帮助???提前谢谢〜

application.html.erb

<body>
  <div id="container">
    <%= render 'layouts/header' %>
    <%= render 'layouts/content'%>
    <%= render 'layouts/footer' %>
  </div>
</body>

_header.html.erb

<%= link_to_remote "Home", :url => { :controller => "pages", :action => "home" } %>

_content.html.erb

<div id="content">
  <%= yield %>
</div>

pages_controller.rb

def home
  @title = "Home"
  respond_to do |format|
    format.js
  end
end

home.rjs

page.replace_html :container, :partial => 'layouts/content'

2 个答案:

答案 0 :(得分:0)

尝试将'home.rjs'重命名为'home.js.rjs'。其他一切看起来都很正确。你得到什么错误?

答案 1 :(得分:0)

尝试:

pages_controller.rb

def home
  @title = "Home"
  respond_to do |format|
    format.js {
      render(:update) do |page|
        page.replace 'content', :partial => 'layouts/content'      
      end
    }
  end
end 

您不需要额外的rjs文件。另外,如果您将@title保存到数据库,那么您需要在respond_to之前执行@ title.reload以获取最新数据。关于firebug的上述评论很有帮助。