Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用RJ连接到远程_Ruby On Rails_Ajax_Rjs_Link To Remote - Fatal编程技术网

Ruby on rails 使用RJ连接到远程

Ruby 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

我的应用程序布局包含一个导航div和一个构造为分部的内容div。我想使用ajax,这样每当一个人单击导航div中的链接时,该页面的内容就会在content div中呈现,而无需刷新。我不知道该怎么做。。。对rails noob有什么帮助吗???提前谢谢~

application.html.erb

<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