【发布时间】:2018-11-07 18:28:13
【问题描述】:
我有一个 AJAX 调用来加载一个模式,但如果 consent settings 关闭 redirect_to 设置页面,我有一个 before_action。
AJAX 调用
$(document).on 'click', '#add-consent-form-template, #edit-consent-form-template', (e) ->
$.ajax(url: $(this).attr('data-url')).done (html) ->
$("#modal-consent-form-content").html html
$("#modal-consent-form").modal('show')
$('.date_picker').each ->
$(this).datepicker
showOn: 'both'
dateFormat: 'mm-dd-yy'
altFormat: 'yy-mm-dd'
altField: $(this).next()
minDate : 0
$('.ui-datepicker-trigger').addClass('fa fa-calendar fa-lg mar-left-10')
$('.description .widget').height($('.study-graph .widget').height())
e.preventDefault()
正常情况(如果同意设置为 ON)
render partial: 'add_consent_form_template_modal', layout: false
错误案例(如果同意设置为关闭)
set_flash(error: 'Consent Forms are disabled. Please turn on Consent Forms first.')
redirect_to edit_study_path(id: @study)
问题
在redirect_to 的情况下,它会在模态中呈现整个设置页面。如何处理 AJAX 回调以呈现部分或重定向到设置页面?
【问题讨论】:
-
你不能从 ajax 调用重定向。
-
是否有中止 AJAX 回调的方法?那如果它
redirect_to而不是来AJAX 回调? -
不要使用
redirect_to。只需返回path即可重定向并在客户端使用window.location = path。 -
是的,这就是我实际尝试的方法,但我如何确定我收到的是
html还是path? -
按状态码。
标签: ruby-on-rails ajax coffeescript