Rails4 无法在远程调用时呈现正确的部分

Rails4 unable to render the correct partial on remote call

远程 link 工作正常,通过 js format 正确到达控制器,然后我尝试根据接收到的 params[:id] 渲染不同的部分,但我的部分有问题写...不明白..

在我的布局视图中

<!-- BEGIN PAGE CONTENT -->
  <div id="page-content">
    <div id='wrap'>
      <%= yield %>
    </div> <!--wrap -->
  </div> <!-- page-content -->
  <!-- END PAGE CONTENT -->

我的 SheetsController.rb 是:

 class SheetsController < ApplicationController

    respond_to :html, :js

    def show
      sheet = Sheet.find(params[:id])
      @sheet = "sheets/_#{sheet.name}.html.erb"
      respond_to do |format|
        format.js {
          render template: "sheets/sample.js.erb"  
        }
        format.html {
          render template: @sheet  
        }
      end    
    end
  end

在我的 sheets/sample.js.erb 中,我写了

$('#page-content #wrap').html("<%=j render partial: @sheet %>");

错误是:

  ArgumentError - The partial name (sheets/_sample-0.html.erb) 
 is not a valid Ruby identifier; make sure your partial name starts 
 with underscore, and is followed by any combination of let ters, 
 numbers and underscores.:

我的观点结构是

app
   - views
       - sheets
           sample.js.erb
           _sample-0.html.erb
           _sample-1.html.erb
           _sample-2.html.erb
           show.html.erb

错了吗?感谢反馈

我会改变

@sheet = "sheets/_#{sheet.name}.html.erb"

@sheet = "sheets/#{sheet.name}.html.erb"

请告诉我进展如何。

P.S。我测试确认包含扩展名 .html.erb 或排除扩展名不会影响部分渲染。但是如果我包含下划线,我就会出错。

我再次阅读错误消息发现了问题...我的部分命名为:sample-0 sample-1 sample-2,'-' is PROHIBITED .. 将名称更改为字母、数字和下划线...是诀窍

sample_0 sample_1 sample_2