Ruby on rails 使用RJ连接到远程
我的应用程序布局包含一个导航div和一个构造为分部的内容div。我想使用ajax,这样每当一个人单击导航div中的链接时,该页面的内容就会在content div中呈现,而无需刷新。我不知道该怎么做。。。对rails noob有什么帮助吗???提前谢谢~ application.html.erbRuby on rails 使用RJ连接到远程,ruby-on-rails,ajax,rjs,link-to-remote,Ruby On Rails,Ajax,Rjs,Link To Remote,我的应用程序布局包含一个导航div和一个构造为分部的内容div。我想使用ajax,这样每当一个人单击导航div中的链接时,该页面的内容就会在content div中呈现,而无需刷新。我不知道该怎么做。。。对rails noob有什么帮助吗???提前谢谢~ application.html.erb <body> <div id="container"> <%= render 'layouts/header' %> <%= render
<body>
<div id="container">
<%= render 'layouts/header' %>
<%= render 'layouts/content'%>
<%= render 'layouts/footer' %>
</div>
</body>
home.rjs
page.replace_html :container, :partial => 'layouts/content'
尝试将“home.rjs”重命名为“home.js.rjs”。其他一切看起来都是正确的。您遇到了什么错误?请尝试: pages\u controller.rb
def home
@title = "Home"
respond_to do |format|
format.js
end
end
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保存到数据库中,则需要在响应之前执行@title.reload以获取最新数据。上面关于firebug的评论很有帮助 仅供参考:
link\u to\u remote
是Rails 2实现这一点的方法。从Rails 3开始,将使用link_to…,:remote=>true
。关于您的问题:使用Firefox的firebug插件并激活控制台。在那里,您可以跟踪Ajax请求。如果控制器端有错误,它将包含在响应中。duddle这非常有用,我今天已经尝试了一会儿。您好,谢谢您的回复,我得到的错误是:try{Element.update(“container”),“\n\n\n”);}catch(e){alert('RJS error:\n\n'+e.toString());alert('Element.update(\“container\”,\“\\n\\n\\n\”);抛出e}
page.replace_html :container, :partial => 'layouts/content'
def home
@title = "Home"
respond_to do |format|
format.js {
render(:update) do |page|
page.replace 'content', :partial => 'layouts/content'
end
}
end
end