0

我的应用程序布局包含一个导航 div 和一个作为部分构造的内容 div。我想使用 ajax,这样每当有人单击导航 div 中的链接时,该页面的内容就会在内容 div 中呈现而无需刷新。我对如何正确地做到这一点感到困惑......对rails noob有什么帮助吗???先谢谢了~

应用程序.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

主页.rjs

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

2 回答 2

0

尝试将“home.rjs”重命名为“home.js.rjs”。其他一切看起来都是正确的。你遇到了什么错误?

于 2011-01-01T17:48:05.447 回答
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 以获取最新数据。上面关于萤火虫的评论很有帮助。

于 2012-03-01T23:17:13.913 回答