远程链接工作正常,使用 js 格式正确到达 Controller
,然后我尝试根据收到的 params[:id]
渲染不同的部分,但是我的写作有问题...不明白..
在我的布局 View 中
<!-- 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.:
我的 View 结构是
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"
请让我知道进展如何。
附注我测试确认包含扩展名 .html.erb 或排除扩展名不会影响部分渲染。但如果我包含下划线,则会出现错误。
关于javascript - Rails4 无法在远程调用上呈现正确的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256196/