网站正常工作在本地主机上,但是当上传到Heroku的,create.js.erb输出为文本,并向地址的结果是:网站/ supporters.js,不知道为什么。该网站只是一个带有支持者表格的页面,并且在提交时,应该呈现页面上的表格和支持者列表。js.erb输出的文本,而不是JS
页:
<div class="row">
<div class="col-md-12">
TEXT
</div>
</div>
<br>
<div class="row">
<div class="col-md-4">
<div id="home_form">
<%= render "supporters/form" %>
</div>
</div>
<div class="col-md-2">
</div>
<div class="col-md-6" id="home_list">
<br>
<%= render 'supporters/show_supporters' %>
</div>
</div>
控制器:
class SupportersController < ApplicationController
...
def create
@supporter = Supporter.new(supporter_params)
@supporters = Supporter.all.order(created_at: :desc)
respond_to do |format|
format.js
end
end
...
create.js
<% if @supporter.save %>
$("#home_list").html("<%= j render 'show_supporters' %>")
$("home_form").html("<%= j render 'form' %>")
<% else %>
$("#home_form").html("<%= j render 'form', supporter: @supporter %>")
$('#build_error').remove();
<% if @supporter.errors.any? %>
var build_error = "<div class='alert alert-danger' id='build_error'>";
build_error += "You've got <%= pluralize(@supporter.errors.count, 'error') %>.";
build_error += "<ul id='error_explanation'>";
<% @supporter.errors.full_messages.each do |msg| %>
<% if msg === "Ip has already been taken" %>
<% msg = "You've already posted your support. Thanks!" %>
<% end %>
build_error += "<li><%= j msg %></li>";
<% end %>
build_error += "</ul>";
build_error += "</div>";
$(build_error).insertBefore("#home_form");
<% end %>
<% end %>
你能具体谈谈这个问题,你期待什么? “create.js.erb输出的结果为文本”? –
它在这个网页https://deadindustry-newnew-recruit.herokuapp.com/ ...当你提交到表单时,它将吐出的元素渲染为文字 – daveasdf