flash.now和@instance_var之间的区别

时间:2013-05-08 13:29:21

标签: ruby-on-rails

我想知道使用flash.now和使用实例变量(例如@error_message)之间的区别是什么?

在相关的说明中,当您运行多个服务器时flash如何工作,因此后续请求有可能由不同的服务器执行?

1 个答案:

答案 0 :(得分:0)

  

我想知道使用flash.now和使用实例变量(例如@error_message)之间的区别是什么?

实际上差别不大,因为在请求完成后两个值都消失了。我认为这更方便,因此您的视图代码可以检查一个地方的错误消息,而不必检查flash和实例变量。

  

在相关的说明中,当多台服务器运行时,闪存如何工作,因此后续请求有可能由不同的服务器执行?

flash存在于会话中,通常会持久保存到数据库。因此,如果您的Rails应用程序的多个实例正在运行并且它们使用相同的数据库,则它们具有对flash对象的共享访问权限。因此,如果服务器A写入flash对象而服务器B在下一个请求中读出它,则根本不是问题。