Rails 清除上一个模板后 js 渲染部分

Rails js render partial after clearing previous template

我有一个 rails 应用程序,其主页 link 编辑到 homeController。 在 link 单击(放置操作)时使用 javascript,我想重置 ("clean") 我的整个模板,然后在我的主页中呈现一个全新的部分。

到目前为止我得到了这个:

控制器:

class HomeController < ApplicationController
  def show
    //classic home action
  end

  def physical
    respond_to do |format|               
      format.js
    end
  end
end

Link :

<%= link_to 'Retail Store', home_physical_path, remote: true %>

Js 文件名为“_physical.js.erb”:

$('#empty-body').html("");
$('#empty-body').html("<%= escape_javascript render(:partial => 'physical') %>");

名为 "physical.html.erb" 的视图:

<div>html layout</div>

使用之前的代码,我没有错误,但我的 js 似乎从未被调用,因为页面根本没有更新。 我尝试添加:

format.js { render partial: 'physical' }

在我控制器中的物理方法上,但是当我调用我的方法时,我的控制台 return this & kill:

Segmentation fault

经过几次变通后,我可以在单击后 "reset" 我的模板(页面完全为空),但无法在其中呈现我的新部分。 问题似乎出在试图在此处渲染部分内容的 js :

$('#empty-body').html("<%= escape_javascript render(:partial => 'physical') %>");

这似乎导致了分段错误...

有什么建议吗?

谢谢。

您只需要重命名您的文件:

  • _physical.js.erb => physical.js.erb(没有 _ 的默认 rails 视图工作流程)
  • physical.html.erb => _physical.html.erb(部分 _