gpt4 book ai didi

javascript - ruby on rails 中的 Ajax flash 消息

转载 作者:数据小太阳 更新时间:2023-10-29 08:19:12 26 4
gpt4 key购买 nike

我正在尝试显示一条闪现消息并使用 Ajax 呈现它,但该消息似乎直到我刷新页面后才出现。

这是我的 create.rjs 文件:

page.insert_html :top, :feed_items, :partial => 'shared/feed_item', :object => @micropost
page.replace_html :user_info, pluralize(current_user.microposts.count, "micropost")
page[:micropost_form].reset
page.replace_html :notice, flash[:notice]
flash.discard

这是我的应用程序布局 View 的相关部分:

<div id= "notice"><% flash.each do |key, value| %>
<div class="flash <%= key %>"><%= value %></div>
<% end %></div>

这是我的微博 Controller 的相关部分:

class MicropostsController < ApplicationController
before_filter :authenticate, :only => [:create, :destroy]
before_filter :authorized_user, :only => :destroy

def create
@micropost = current_user.microposts.build(params[:micropost])
respond_to do |format|
if @micropost.save
flash[:success] = "Micropost created!"

format.html { redirect_to root_path }
format.js
else
@feed_items = []
render 'pages/home'
end
end
end

那么为什么没有立即显示即显消息?

最佳答案

Flash 消息按设计存储在 session 中,直到下一个页面加载。在ajax的情况下,不要使用flash。一方面,用于替换消息的 div 可能不存在,因此您需要将其作为要添加的容器添加到您的页面。其次,只需从常规变量而不是 flash 执行。

常规变量是:

@message = "Micropost created!"

代替闪光灯[:success]

js View 将使用此变量而不是 flash。

关于javascript - ruby on rails 中的 Ajax flash 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com