Rails f 中的 Flash 消息不再显示
Flash messages in Rails f not showing up any more
我应该提一下,他们在几次提交之前就出现了。由于他们停止工作,我知道我已经添加了用于付款的 Stripe,以及用于发送传真的 efax。我忽略了几次提交的问题,因为我专注于其他事情,认为这将是一个快速修复,但我一直无法弄清楚。
我不认为它是我调用 flash 消息的格式 - 给出一个想法,这是我在我的一个控制器中创建的动作之一:
def create
@vendor = @company.vendors.build(vendor_params)
respond_to do |format|
if @vendor.save
format.html { redirect_to vendors_url, notice: 'Vendor was successfully created.' }
format.json { render :show, status: :created, location: @vendor }
else
format.html { render :new }
format.json { render json: @vendor.errors, status: :unprocessable_entity }
end
end
结束
我试过更改格式,并在 "notice:" 和 "redirect_to" 之间切换,但都没有成功,但这是曾经有效的原始格式。
这是我的应用程序布局,采用 haml 格式(缩进与我的代码相同,以防某处出现问题)
%html
%head
- unless user_signed_in?
%title Welcome to Swiftorders
- else
%title
="#{@company.name} ~ Swiftorders"
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= javascript_include_tag 'https//js.stripe.com/v2/', 'application', 'data-turbolinks-track' => true
%script{:src => "//use.typekit.net/odj6wem.js"}
:javascript
try{Typekit.load();}catch(e){}
= csrf_meta_tags
= tag :meta, :name => :secret_key, :content => :publishable_key
- unless user_signed_in?
%body.splash
.logo
= yield
- else
%body
.app-wrapper.clear
- if flash[:notice]
%p.notice
= :notice
- if flash[:alert]
%p.alert
= alert
= render "layouts/sidebar"
.content
= render "layouts/header"
.sheet
= yield
最后,这里是相关的 CSS 代码,p.notice(它是一个 css.sass 文件):
p.notice
position: absolute
opacity: 0.7
margin: 0px
bottom: 0
z-index: 99
width: 100%
text-align: center
font-size: 18px
font-weight: 300
padding: 20px
color: #fff
background: #000
根据我对 Rails 的有限理解,我认为没有其他任何因素会影响 flash 消息 - 除非可能存在我在某处关闭但没有意识到的配置?
如果需要,我可以 post 更多代码,但现在我不知道该去哪里找。
谢谢大家!
关注= :notice
和= alert
预期 flash[:notice]
和 flash[:alert]
我想通了 - 我把
"config.middleware.use ActionDispatch::Cookies" 和
"config.middleware.use ActionDispatch::Session::CookieStore" 在我的 application.rb 文件中修复另一个问题,将这些注释掉修复了我的闪现消息。同样,= :notice 使闪烁的消息只是 "notice",而不是预期的消息。
我应该提一下,他们在几次提交之前就出现了。由于他们停止工作,我知道我已经添加了用于付款的 Stripe,以及用于发送传真的 efax。我忽略了几次提交的问题,因为我专注于其他事情,认为这将是一个快速修复,但我一直无法弄清楚。
我不认为它是我调用 flash 消息的格式 - 给出一个想法,这是我在我的一个控制器中创建的动作之一:
def create
@vendor = @company.vendors.build(vendor_params)
respond_to do |format|
if @vendor.save
format.html { redirect_to vendors_url, notice: 'Vendor was successfully created.' }
format.json { render :show, status: :created, location: @vendor }
else
format.html { render :new }
format.json { render json: @vendor.errors, status: :unprocessable_entity }
end
end
结束
我试过更改格式,并在 "notice:" 和 "redirect_to" 之间切换,但都没有成功,但这是曾经有效的原始格式。
这是我的应用程序布局,采用 haml 格式(缩进与我的代码相同,以防某处出现问题)
%html
%head
- unless user_signed_in?
%title Welcome to Swiftorders
- else
%title
="#{@company.name} ~ Swiftorders"
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= javascript_include_tag 'https//js.stripe.com/v2/', 'application', 'data-turbolinks-track' => true
%script{:src => "//use.typekit.net/odj6wem.js"}
:javascript
try{Typekit.load();}catch(e){}
= csrf_meta_tags
= tag :meta, :name => :secret_key, :content => :publishable_key
- unless user_signed_in?
%body.splash
.logo
= yield
- else
%body
.app-wrapper.clear
- if flash[:notice]
%p.notice
= :notice
- if flash[:alert]
%p.alert
= alert
= render "layouts/sidebar"
.content
= render "layouts/header"
.sheet
= yield
最后,这里是相关的 CSS 代码,p.notice(它是一个 css.sass 文件):
p.notice
position: absolute
opacity: 0.7
margin: 0px
bottom: 0
z-index: 99
width: 100%
text-align: center
font-size: 18px
font-weight: 300
padding: 20px
color: #fff
background: #000
根据我对 Rails 的有限理解,我认为没有其他任何因素会影响 flash 消息 - 除非可能存在我在某处关闭但没有意识到的配置?
如果需要,我可以 post 更多代码,但现在我不知道该去哪里找。
谢谢大家!
关注= :notice
和= alert
预期 flash[:notice]
和 flash[:alert]
我想通了 - 我把 "config.middleware.use ActionDispatch::Cookies" 和 "config.middleware.use ActionDispatch::Session::CookieStore" 在我的 application.rb 文件中修复另一个问题,将这些注释掉修复了我的闪现消息。同样,= :notice 使闪烁的消息只是 "notice",而不是预期的消息。