【问题标题】:Active Admin - flash messages not appearing on page活动管理员 - 页面上未显示闪烁消息
【发布时间】:2011-10-27 14:43:58
【问题描述】:

我试图在重定向到页面后显示通知,但它没有出现。

这里是重定向 -

redirect_to :action => :index, :notice => "My redirect"

您可以在 url 中看到该消息,但活动管理员中似乎没有任何代码可以显示它。

任何想法如何在活动管理员中呈现它?

【问题讨论】:

  • 您的视图中有 : 吗?
  • 活动管理员生成视图,所以我不知道。

标签: ruby-on-rails ruby-on-rails-3.1 activeadmin


【解决方案1】:

似乎有一些问题我还没有找到,但如果您在那之前一直在寻找解决方法,我就是这样做的:

member_action :test do
  flash[:notice] = "This is a test notice!"
  redirect_to :action => :index
end

我看到的问题是,当您将:notice 放在redirect_to 方法中时,通知消息是url 编码并添加到URL 中的

member_action :test do
  redirect_to :action => :index, :notice => "This is a test notice!"
end

结果

/admin/model?notice=This+is+a+test+notice!

这不太理想。我注意到对 active_admin 文档的更改,其中包括将 {} 放在第一个参数周围到 redirect_to 以解决此问题,但是,对我来说,这会导致错误。

member_action :test do
  redirect_to {:action => :index}, :notice => "This is a test notice!"
end

导致

syntax error, unexpected tASSOC, expecting '}'
    redirect_to {:action => :index}, :notice => "This...

我对那个特定的拉取请求 @active_admin on github 发表了评论,希望有人可以提出其他建议,因为我很难过。

无论如何,也许其中一种解决方案对您有用。祝你好运。

【讨论】:

  • flash[:notice] 为我工作。在找到这个答案之前,我花了一个小时弄乱这个。
  • 您遇到了 ruby​​ 语法问题。尝试加括号:redirect_to({action: :index}, notice: 'Whatever')
  • 在成员操作中使用flash[:notice] 对我来说不能正常工作(不会消失),但@chrpes 的上述解决方案可以。
【解决方案2】:

Active Admin 不呈现 flash 消息,它认为它们是在 t 布局中呈现的。 当你运行 active_admin:install generator 它提到:

$ rails g active_admin:install
...
Some setup you must do manually if you haven't yet:
...
3. Ensure you have flash messages in app/views/layouts/application.html.erb. For example:

   <p class="notice"><%= notice %></p>
   <p class="alert"><%= alert %></p>

【讨论】:

  • 我已将它们添加到我的布局中,但我想在活动管理员创建的视图上显示一条消息
  • 您在上面引用的输出来自 active_admin 安装的设计安装部分。换句话说,devise 建议您更新布局以包含通知/警报字段。这与 active_admin 如何显示其通知/警报消息无关。
猜你喜欢
  • 2018-05-20
  • 1970-01-01
  • 2015-11-25
  • 2019-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
相关资源
最近更新 更多