我的应用程序布局包含导航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'
答案 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的上述评论很有帮助。