Ruby on rails flash[:注意]在Rails中使用AJAX时不工作
我已经尝试过不同版本的make flash[:注意]在不重新加载的情况下工作。 Stackoverflow给了我这个-,但我找不到解决方案,这对我很有效。 例如,添加到我的控制器:Ruby on rails flash[:注意]在Rails中使用AJAX时不工作,ruby-on-rails,ajax,notice,Ruby On Rails,Ajax,Notice,我已经尝试过不同版本的make flash[:注意]在不重新加载的情况下工作。 Stackoverflow给了我这个-,但我找不到解决方案,这对我很有效。 例如,添加到我的控制器: def create @entry = Entry.new(params[:entry]) respond_to do |format| if @entry.save format.html { redirect_to @entry, notice: 'Entry was successfully
def create
@entry = Entry.new(params[:entry])
respond_to do |format|
if @entry.save
format.html { redirect_to @entry, notice: 'Entry was successfully created.' }
format.js {
flash.now[:notice] = 'Website was successfully created.'
render action: 'create'
}
else
format.html { render action: "new" }
format.js { render action: "new" }
end
end
end
create.js
$('').appendTo('#网站').hide().fadeIn();
$(“.alert”).html(“”)$(“.alert”)。显示(300);
$(“#新建#U网站”)[0]。重置();
但它不起作用
有人能告诉我一个通俗易懂的完整解决方案吗?这对他来说很有用。你的js模板文件名有没有打错?它应该是create.js.erb,而不是create.js
请严格遵守,然后对其进行更改。您正在通过Ajax提交新条目,因此您不应该使用flash--它用于重定向响应,但您没有重定向。要指示成功或失败,您需要将其写入JavaScript响应。视图模板
create.js.erb
的外观如何?您应该使用当前的flash。看起来不错,尝试使用firebug查看服务器的ajax响应并调试js代码。没有与表单相关的错误。只有与所选插件相关的错误。我应该在FireBug控制台中添加一些观察者?您应该执行AJAX请求,检查服务器的响应并查看输出结果,然后尝试在FireBug控制台中执行相同的JS代码。
$('<%= j render @website %>').appendTo('#websites').hide().fadeIn();
$(".alert").html("<%= escape_javascript(flash[:notice]) %>"); $(".alert").show(300);
$("#new_website")[0].reset();