使用flash时有什么区别:error,:alert和:notice?

Gui*_*mez 31 ruby-on-rails-3

由于问题的标题问:我想知道,如果有使用的时候有什么区别flash[:error],flash[:alert]flash[:notice].如果是这样,何时使用每个,为什么?

Adi*_*ghi 34

flash是一种Rails机制,可以在两个请求中保留一些信息.您在一个请求中设置了flash哈希值,并且在您从同一个客户端收到的下一个请求中可用.

由于flash只是一个"哈希",你可以像使用它一样使用它.这意味着您可以提供首选键(:alert /:error /:notice)并将您希望的任何消息字符串作为值.

什么或何时使用的语义:alert /:error /:notice真的取决于你管理.话虽如此,一般的最佳做法是使用:当事情是好的时候注意并以绿色色调显示,并且当事情不好时使用:错误并以红色调显示.如果你想使用:在你的网络应用程序上警告其他类型的消息,这是完全可以的.我之前用它以黄色调为信息目的.


fny*_*fny 9

:alert并且在:notice功能上与您发明的其他键不同.FlashHash为两者提供便利的访问器:flash.alert,flash.notice.Rails的这两个偏好进一步抚养它的方式进入redirect_to,这将只接受:alert,:notice:flash.

但是,2012年7月提交给Rails 的提交允许添加其他Flash类型的权限.这是在Rails 4中添加自定义Flash类型的示例:

# app/controllers/application_controller.rb
class ApplicationController; add_flash_types(:error, :annoyance); end

# app/controllers/monopoly_controller.rb
class MonopolyController < ApplicationController
  def chance
    ...
    redirect_to haha_path, annoyance: "Go directly to jail. Do not pass Go. Do not collect $200."
  end
end

# app/views/haha/index.html.erb
<%= annoyance %>
Run Code Online (Sandbox Code Playgroud)


Joe*_*MAR 7

这只是一个分类.它生成div#error.error或div#notice.notice你连接上面你想要的逻辑

小样品:

.alert, .error, .notice, .success { padding:.8em 0; margin:0 0 2px 0; border:2px solid #ddd; font-size:1.6em; text-align:center;}

.error { background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4; }
.notice { background:#FFF6BF;color:#514721;border-color:#FFD324; }
.success { background:#DDFCD5;color:#000;border-color:#44A815; }
.alert { background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4; }

.error a {color:#8a1f11;}
.notice a {color:#514721;}
.success a {color:#264409;}
.alert a {color:#8a1f11;}
Run Code Online (Sandbox Code Playgroud)