Ruby on rails 我可以防止AJAX调用后出现flash消息吗?
我有一个网站,没有javascript的用户可以优雅地降级。对于没有javascript的用户,控制器将使用HTML响应表单提交。对于使用javascript的用户,将有一个AJAX表单提交。这在控制器中的创建方法中:Ruby on rails 我可以防止AJAX调用后出现flash消息吗?,ruby-on-rails,ajax,Ruby On Rails,Ajax,我有一个网站,没有javascript的用户可以优雅地降级。对于没有javascript的用户,控制器将使用HTML响应表单提交。对于使用javascript的用户,将有一个AJAX表单提交。这在控制器中的创建方法中: if !@goal.save flash[:error] = array_to_list(@goal.errors.full_messages) else flash[:success] = "Your goal was successfu
if !@goal.save
flash[:error] = array_to_list(@goal.errors.full_messages)
else
flash[:success] = "Your goal was successfully added."
end
respond_to do |format|
format.html { redirect_to :action => "show"}
format.js
end
如果用户启用了javascript,我不想将这些消息放到flash中,因为在用户处理完之后,它会显示出来。有没有办法告诉Rails只有在用html响应时才显示flash消息?为了实现这一点,您可以将代码的flash位放入format.html块中
也许是这样的:
@goal.save
respond_to do |format|
format.html do
if @goal.errors
flash[:error] = array_to_list(@goal.errors.full_messages)
else
flash[:notice] = "Your goal was successfully added."
end
redirect_to :action => "show"
end
format.js
end
您是否想过,您可能还希望在AJAX请求中出现某种错误消息?如果您的AJAX请求因某种原因中断,导致内容无法保存,这可能是一个好主意。您可以将代码的闪存位放入format.html块中,以实现这一点
也许是这样的:
@goal.save
respond_to do |format|
format.html do
if @goal.errors
flash[:error] = array_to_list(@goal.errors.full_messages)
else
flash[:notice] = "Your goal was successfully added."
end
redirect_to :action => "show"
end
format.js
end
您是否想过,您可能还希望在AJAX请求中出现某种错误消息?如果您的AJAX请求因某种原因中断,因此无法保存内容,这可能是一个好主意