我正在尝试在我的表单上单击复选框时启用引导警报。我目前正在通过ajax更新记录,这里是rails中的控制器:
respond_to do |format|
if assignment.save
flash[:notice] = "Success"
format.js {}
else
flash[:notice] = "Changed"
format.js {}
end
end
然后在app/views/roles/assign.js.erb
处触发路径请求,我目前在此处执行此操作:
$(document).ready(function() {
debugger;
});
我希望我能在调试器中玩,但我甚至无法进入调试器。
我的ajax看起来像这样:
$(document).ready(function(){
function update_user() {
$.ajax({
url: '/roles/assign/',
type: 'PUT',
data: {'assignment': this.name}
});
}
$(".role-check").on( "click", update_user );
});
记录在ActiveRecord中正确保存并相应保存 - 我无法在没有页面重新加载的情况下显示警报。
这是我的application.html.haml
!!!
%html
%head
%title Qautamator
= stylesheet_link_tag 'application', media: 'all'
= javascript_include_tag 'application'
= csrf_meta_tags
%body
= render '/layouts/header'
.container
.flash_notice
- flash.each do |name, msg|
%div{:class => "alert alert-#{flash_level(name)}"}
%button.close{"data-dismiss" => "alert", :type => "button"}
%span{"aria-hidden" => "true"} ×
%span.sr-only Close
= msg
= yield
答案 0 :(得分:1)
您可以使用变量并将其用于Flash消息。
控制器中的
respond_to do |format|
if assignment.save
flash[:notice] = "Success"
@status= "Success"
format.js {}
else
flash[:notice] = "Changed"
@status= "Changed"
format.js {}
end
end
在application.html.haml中添加
.text-success.profile_image_added.alert.alert-success.text-center
将此添加到app / views / roles / assign.js.erb
#####no need->$(document).ready(function() {
$(".profile_image_added').html("<%= @status %>"):
#####no need-> });
答案 1 :(得分:0)
我不是100%我知道你在寻找什么但是在你的ajax请求中你不能添加一个显示你的消息的success
处理程序吗?
$(document).ready(function(){
function update_user() {
$.ajax({
url: '/roles/assign/',
type: 'PUT',
data: {'assignment': this.name},
success: function (response) {
alert(response); //or whatever method of displaying to user
}
});
}
$(".role-check").on( "click", update_user );
});