每次有人访问该站点时,Rails 应用程序中的初始化程序都会运行吗?
例如,如果我的服务器于上午 10 点在德克萨斯州启动,并且有人在下午 1 点从纽约访问我的站点,而有人在晚上 10 点从洛杉矶访问,那么当来自纽约的人运行时,在 Rails 应用程序中执行初始化程序和洛杉矶访问,还是只有在我在德克萨斯州启动服务器后才运行初始化程序?
我问的原因是因为我在初始化文件中使用 case 表达式来更改电子邮件设置,具体取决于访问应用程序的时间。如果初始化程序在有人访问该站点时运行,这当然才有意义。如果它们仅在服务器启动时运行,那么这只是一种情况......
如果这不是执行此操作的正确位置,或者如果初始化程序仅在服务器在德克萨斯州启动后运行(例如),那么您会将这段代码放在哪里?
case
when Time.now.hour == 0
ActionMailer::Base.smtp_settings = {
:user_name => "blahblah@example.com",
:password => "blahblah",
:address => "smtp.examplel.com",
:port => 25,
:tls => true
}
when Time.now.hour == 1
ActionMailer::Base.smtp_settings = {
:user_name => "blah@example.com",
:password => "eatshit",
:address => "smtp.example.com",
:port => 25,
:tls => true
}
end