ruby-on-rails - 我的 Ajax 调用返回 js.erb 文件作为浏览器中的响应。如何让它返回 json 内容,同时执行 js.erb 文件?
问题描述
我是 Ruby on Rails 的新手,正在尝试一个应用程序。我的应用程序正确执行 Ajax 调用,但响应在浏览器中显示为 js.erb 文件。如何在执行 js.erb 文件时显示 json 响应?有可能还是有更好的方法?
谢谢你。
我的控制器文件
def new
@department = Department.new
# respond_to do |format|
# format.html
# format.json {render json: @department}
# end
end
def create
@departments = Department.all
@department = Department.create(department_params)
respond_to do |format|
format.html
format.js {render json: @department}
end
end
我的表格部分
<div class="modal-dialog">
<div class="modal-content">
<%= form_for @department, remote: true, data: {type: :json} do |f| %>
<div class="modal-body">
<h2> Department: </h2>
<ul class="errors"></ul>
<div class="form-group">
<%= f.label :title, class:"control-label" %>
<%= f.text_field :title, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :body, class: "control-label" %>
<%= f.text_field :body, class: "form-control" %>
</div>
</div>
<div class="modal-footer">
<%= f.submit class: "btn btn-primary .departmentCreate" %>
<%= link_to "Cancel", "#", class: "btn", data: {dismiss: "modal"} %>
</div>
<% end %>
</div>
</div>
如果我保留 format.js {render json: @department} Json 响应,我的 Json 响应
如果我从控制器中删除渲染 json,我的响应: JS 响应
我的 new.js.erb 文件
$("#department-modal").html("<%= escape_javascript(render 'departments/new') %>")
$("#department-modal").modal("show")
我的 _new.html.erb 部分:
<%= render "form" %>
我的 create.js.erb 文件:
<%= render 'save' %>
我的 _save.js.erb 部分:
$("ul.errors").html("")
<% if @department.errors.any? %>
<% @department.errors.full_messages.each do |message| %>
$("ul.errors").append($("<li />").html("<%= message.html_safe %>"))
<% end %>
<% else %>
$(".department-index").html("<%= escape_javascript(render 'departments/index') %>")
$("#department-modal").modal("hide")
在浏览器中呈现 json 响应时,js.erb 文件不会执行。如何在 js.erb 文件执行时在浏览器中显示 json 响应?谢谢 :)
解决方案
如何在 js.erb 文件执行时在浏览器中显示 json 响应?谢谢 :)
如果我正确理解了您的要求,那么答案是您不能。您的回复Content-Type
将是 anapplication/json
或 an application/javascript
。
浏览器将使用此标头来处理响应。
推荐阅读
- json - 使用键、值获取嵌套的 JSON 数据
- python - 编译器的中间代码生成器
- python - 如何将 py 文件中的机器学习算法集成到 django 网站中?
- excel - 组合框值更改
- javascript - 如何使用 javascript 将 youtube 视频嵌入 wordpress
- javascript - React native Android 给出关于 gradle 的错误
- wordpress - 尝试设置 W3 Total Cache 以将 Cloudfront 用作 CDN。为什么我会收到这个严重错误?
- javascript - 数组的性能包括与映射到对象并在 JavaScript 中访问它
- java - Bean 创建拦截器
- python - 为什么python`in`比`np.isin`快得多