【发布时间】:2020-01-02 20:40:48
【问题描述】:
我正在尝试渲染 js.erb 文件的部分内容,但视图中没有显示任何内容。
当按下按钮时,有一个 AJAX 调用会触发announcements_controller 中的report_announcement 操作。
reports.js
$.ajax({
type: "POST",
contentType: "application/json",
url: "/announcements/report_announcement.js",
data: json_data
});
报告/_report_content.html.erb
<div id="report_announcements_container"></div>
announcements_controller.rb
def report_announcement
@announcement = Announcement.new(announcement_params)
respond_to do |format|
if @announcement.save
format.js {}
end
end
end
announcements/report_announcement.js.erb
我知道announcements/report_announcement.js.erb 呈现正常,因为我可以在控制台和development.log 中看到日志记录语句,以及正在记录到控制台的report_announcement 对象。
<% announcement_json = @announcement.to_json.html_safe %>
var report_announcement = <%= announcement_json %>;
console.log('report_announcement');
console.log(report_announcement);
// this is where something is not right I think
$("#report_announcements_container").html("<%= escape_javascript(render partial: 'announcements/report_announcements', locals: { announcement: @announcement }) %>");
console.log('inside announcements....');
announcements/report_announcements.html.erb 这是我遇到问题的地方,因为显示了部分的日志记录语句,但是页面上没有显示部分的任何内容。我在 development.log 中看到页面呈现,但视图中实际上没有显示任何内容。部分未显示在 report_announcements_container div 的页面上。
<h1>test</h1>
<%= announcement %>
<script>
console.log('inside partial...');
</script>
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4