【发布时间】:2012-12-15 23:43:46
【问题描述】:
无法让 ajax form_for 尊重 format.js respond_to 仅响应 format.html。非常感谢任何帮助。
查看
此视图由 AJAX 部分调用,然后用户提交表单。最初的 ajax 调用会混淆这个表单的“remote:true”吗?
<%= form_for([@nested, @nested.resources.new], remote: true) do |i|%>
<%= i.hidden_field :inviter_id, value: current_user.id %>
<%= i.hidden_field :fb_pic_url, value: f['pic_square'] %>
<%= i.hidden_field :name, value: f['name'] %>
<%= i.hidden_field :uid, value: f['uid'] %>
<%= i.submit "Invite", class:"btn btn-success invite_button" %>
<% end %>
routes.rb
resources :nested do
resources :resources
end
控制器
def create
code code code
respond_to do |format|
format.html { redirect_to @nested, notice: "Successfully Posted Nested" }
format.json { render json: @nested, status: :created, location: @nested }
format.js { render :nothing => true }
end
end
create.js.erb 存在但为空
application.html
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
application.js
//= require jquery
//= require jquery_ujs
【问题讨论】:
-
请求中发送了哪些接受头?
-
"HTTP_ACCEPT"=>"text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8"
-
我不明白这个问题。你是说提交 form_for 后你得到了 html 响应?
-
正确,它应该接收一个 js 请求并使用 format.js 行中的 js 模板进行响应,但它正在接收一个 html 请求并给出一个 html 响应。
-
@ajbraus,即使按照以下答案的说明但没有成功,我也遇到了与您相同的问题。你得到这个工作了吗?真的只是做出下面答案中建议的更改吗?
标签: ruby-on-rails ajax ruby-on-rails-3.2 form-for nested-form-for