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

时间:2015-08-27 17:48:09

标签: javascript ajax ruby-on-rails-4 partial-views

远程链接工作正常,使用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

是不是错了?感谢您的反馈

2 个答案:

答案 0 :(得分:1)

我会改变

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

count patches with [pcolor = yellow]

请告诉我它是怎么回事。

P.S。我测试确认包含扩展名.html.erb或扩展名的排除不会影响部分呈现。但如果我加入下划线,我就会收到错误。

答案 1 :(得分:0)

我发现问题再次读取错误信息...我的部分命名为:sample-0 sample-1 sample-2,&#39; - &#39;被禁止 .. 将名称更改为字母,数字和下划线......是诀窍

sample_0 sample_1 sample_2