我想知道使用flash.now
和使用实例变量(例如@error_message
)之间的区别是什么?
在相关的说明中,当您运行多个服务器时flash
如何工作,因此后续请求有可能由不同的服务器执行?
答案 0 :(得分:0)
我想知道使用flash.now和使用实例变量(例如@error_message)之间的区别是什么?
实际上差别不大,因为在请求完成后两个值都消失了。我认为这更方便,因此您的视图代码可以检查一个地方的错误消息,而不必检查flash
和实例变量。
在相关的说明中,当多台服务器运行时,闪存如何工作,因此后续请求有可能由不同的服务器执行?
flash
存在于会话中,通常会持久保存到数据库。因此,如果您的Rails应用程序的多个实例正在运行并且它们使用相同的数据库,则它们具有对flash
对象的共享访问权限。因此,如果服务器A写入flash
对象而服务器B在下一个请求中读出它,则根本不是问题。