[英]JQuery posting form via AJAX not triggering rails respond_to format.js
[英]making rails respond_to format js for an Ajax request
我正在尝试发出一个Ajax请求,该请求在单选按钮单击时进行更新,而无需重新加载整个页面。
更新控制器中的动作定义。 在Rails文档中,关于这部分的信息确实很少。
def update
if @rsvp.update(rsvp_params)
respond_to do |format|
format.js
end
end
end
update.js.erb,不确定该代码是否还能工作,但是由于Rails甚至找不到它,所以我无法对其进行测试:
$(document).on('ready', function() {
$('.rsvp').on('click', function(e) {
e.preventDefault()
var user_id = $(.rsvp).data('user-id')
var rsvp_id = $(.rsvp_id).data('rsvp-id')
$.ajax({
type: 'POST',
url: "users/" + user_id + "/rsvps/" + rsvp_id
}).done(function(response){ console.log('hello?', response)
})
})
})
目前应用打破了与ActionController::UnknownFormat in RsvpsController#update
在respond_to
行。 这篇文章是此文章的扩展,它试图立即解决太多问题 。
日志
Processing by RsvpsController#update as HTML
Parameters: {"utf8"=>"✓", "rsvp"=>{"event_id"=>"16", "status"=>"attending"}, "user_id"=>"1", "id"=>"11"}
Rsvp Load (3.3ms) SELECT "rsvps".* FROM "rsvps" WHERE "rsvps"."id" = $1 LIMIT $2 [["id", 11], ["LIMIT", 1]]
(0.2ms) BEGIN
Event Load (2.5ms) SELECT "events".* FROM "events" WHERE "events"."id" = $1 LIMIT $2 [["id", 16], ["LIMIT", 1]]
User Load (1.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
SQL (0.7ms) UPDATE "rsvps" SET "status" = $1 WHERE "rsvps"."id" = $2 [["status", 2], ["id", 11]]
(2.4ms) COMMIT
Completed 406 Not Acceptable in 82ms (ActiveRecord: 20.6ms)
ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/rsvps_controller.rb:19:in `update'
更新
在我的路由文件中,我做了resources :rsvps, defaults: { format: 'js' }
。 这使应用程序以JS(而不是HTML)而不是HTML的形式处理请求,但现在它呈现了update.js.erb文件。 数据库已更新,但是没有发生部分重新加载的情况。
这样尝试
$.ajax({
type: 'POST',
url: "users/" + user_id + "/rsvps/" + rsvp_id,
contentType: "text/javascript"
}).done(function(response){
console.log('hello?', response)
})
要么
$.ajax({
type: 'POST',
url: "users/" + user_id + "/rsvps/" + rsvp_id.js
}).done(function(response){
console.log('hello?', response)
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.