Javascript 来自控制器的Rails Ajax调用,不带远程:true
我有一个“Establecimientos”(机构)表单,当用户点击提交按钮时,会出现一个验证,可能会显示一个模式对话框或重定向到“Establecimientos”索引页。我一直在尝试使用和不使用remote:true,表单中的html或js调用都出现错误。这是我的控制器(表单没有remote:true): 当else块发生时:formats=>[:js]不起作用,my create.js.erb的内容将显示在新页面上,而不会以纯文本形式呈现(控制台显示它以html形式呈现)。谢谢你的帮助 格式部分Javascript 来自控制器的Rails Ajax调用,不带远程:true,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,我有一个“Establecimientos”(机构)表单,当用户点击提交按钮时,会出现一个验证,可能会显示一个模式对话框或重定向到“Establecimientos”索引页。我一直在尝试使用和不使用remote:true,表单中的html或js调用都出现错误。这是我的控制器(表单没有remote:true): 当else块发生时:formats=>[:js]不起作用,my create.js.erb的内容将显示在新页面上,而不会以纯文本形式呈现(控制台显示它以html形式呈现)。谢谢你的帮助 格
<%= bootstrap_form_for(@establecimiento, label_errors: true, layout: :horizontal, label_col: "col-sm-3", control_col: "col-sm-7") do |f| %>
...content
<%= f.form_group do %>
<%= f.submit %>
<% end %>
<%= render 'duplicated_modal' %>
<% end %>
…内容
create.js.erb
<%@duplicated_establishment = Establecimiento.find_by_nit(@establecimiento.nit) %>
$('.modal-body').html("Ya existe un establecimiento con el mismo NIT (<%= j @duplicated_establishment.nit.to_s %>) ubicado en <%= j @duplicated_establishment.direccion_establecimiento %>, desea crear una nueva sede?");
$('.modal-footer').html("<%= j button_to 'Crear nueva sede', new_location_path(@establecimiento), class: "btn btn-primary", "method"=>"post", remote: true%> <button type='button' class='btn btn-default' data-dismiss='modal'>Cancelar</button> ")
$('#duplicated_conf_modal').modal("show");
$('#duplicated_conf_modal').on('shown.bs.modal', function () {
$('.first_input').focus()
})
$('.modal body').html(“是否存在联合国不动产许可证(ubicado en,desea crear una nueva sede?”);
$('.modal footer').html(“'post',remote:true%>Cancelar”)
$(“#复制的_conf_model”).model(“显示”);
$('#复制的_conf_modal')。on('show.bs.modal',function(){
$('.first_input').focus()
})
使用remote:true可以将所有调用都作为JS调用,但也可以使用HTML调用如果您希望将请求读取为
format.JS
,最简单的方法是在最后点击所需路径加上.JS
。如establecimientos_path+.js“
中所示
我相信您也可以执行
establecimientos_path(format:“js”)
如果您希望将请求读取为format.js
,最简单的方法是在最后点击所需路径加上.js
。如establecimientos_path+.js“
中所示
我相信您也可以执行
establecimientos_path(format:“js”)
如果您想用JavaScript响应,您应该使用remote:true。我不熟悉“:formats=>[:js]”语法,但对我来说这似乎也是违反直觉的。如果您想要JS,请在JS中发出请求。假设我们要使用remote:true,请您更新您的问题,以显示带有提交按钮的.erb模板和create.js.erb响应文件?正如我所说,响应也可以是html调用,这就是为什么我不使用remote:true。我以前使用过它,但问题是当我希望它是HTML时,会有一个JS调用。我会添加其他文件,谢谢回复如果你想用JavaScript响应,你应该使用remote:true。我不熟悉“:formats=>[:js]”语法,但对我来说这似乎也是违反直觉的。如果您想要JS,请在JS中发出请求。假设我们要使用remote:true,请您更新您的问题,以显示带有提交按钮的.erb模板和create.js.erb响应文件?正如我所说,响应也可以是html调用,这就是为什么我不使用remote:true。我以前使用过它,但问题是当我希望它是HTML时,会有一个JS调用。我会添加其他文件,谢谢回复如果你想用JavaScript响应,你应该使用remote:true。我不熟悉“:formats=>[:js]”语法,但对我来说这似乎也是违反直觉的。如果您想要JS,请在JS中发出请求。假设我们要使用remote:true,请您更新您的问题,以显示带有提交按钮的.erb模板和create.js.erb响应文件?正如我所说,响应也可以是html调用,这就是为什么我不使用remote:true。我以前使用过它,但问题是当我希望它是HTML时,会有一个JS调用。我将添加其他文件,感谢您的回复问题出在else
部分,我如何才能在那里请求“创建”操作?您应该能够只使用format.js
而不使用任何块,它将适当地呈现create.js.erb
。没有响应就无法阻止?我确实response\u to do | format | format.js end
但是它抛出了一个未知的信息错误您是否验证了您正在触发format.js
而不是format.json
?因为respond_to{| format | format.js}
如果是请求的格式,应该可以工作。因为我没有remote:true选项,submit按钮会触发html调用,但我正在尝试从控制器发送js调用。如果没有远程参数,即使在你的建议下,我也会出现未知信息错误。。。我已经被这个问题困扰了两天,我不知道离开remote是否会更难:true并尝试从JS调用格式化html问题在else
部分,我如何请求“创建”操作有吗?你应该可以只使用format.js
而不使用块,它将适当地渲染create.js.erb
。而不使用块的响应?我确实response\u to do | format | format.js end
但是它抛出了一个未知的信息错误您是否验证了您正在触发format.js
而不是format.json
?因为respond_to{| format | format.js}
如果是请求的格式,应该可以工作。因为我没有remote:true选项,submit按钮会触发html调用,但我正在尝试从控制器发送js调用。如果没有远程参数,即使在你的建议下,我也会出现未知信息错误。。。我已经被这个问题困扰了两天,我不知道离开remote是否会更难:true并尝试从JS调用格式化html问题在else
部分,我如何请求“创建”操作有吗?你应该可以只使用format.js
而不使用块,它将适当地渲染create.js.erb
。而不使用块的响应?我确实response\u to do | format | format.js end
但它抛出了一个未知信息错误您是否验证了您正在触发format.js
而不是format.json
<%@duplicated_establishment = Establecimiento.find_by_nit(@establecimiento.nit) %>
$('.modal-body').html("Ya existe un establecimiento con el mismo NIT (<%= j @duplicated_establishment.nit.to_s %>) ubicado en <%= j @duplicated_establishment.direccion_establecimiento %>, desea crear una nueva sede?");
$('.modal-footer').html("<%= j button_to 'Crear nueva sede', new_location_path(@establecimiento), class: "btn btn-primary", "method"=>"post", remote: true%> <button type='button' class='btn btn-default' data-dismiss='modal'>Cancelar</button> ")
$('#duplicated_conf_modal').modal("show");
$('#duplicated_conf_modal').on('shown.bs.modal', function () {
$('.first_input').focus()
})