Ruby on rails 3.2 带有Rails的初始值设定项中的惰性计算

Ruby on rails 3.2 带有Rails的初始值设定项中的惰性计算,ruby-on-rails-3.2,lazy-evaluation,Ruby On Rails 3.2,Lazy Evaluation,我在Rails应用程序上有一个设置类,有几个列可由后端的管理员用户更新,即f.I.support_email,因此每次应用程序在新用户注册后发送电子邮件时,我都要重新评估此列 我尝试在Desive初始值设定项中使用一个短而粗的lambda,就像类中的作用域: Devise.setup do |config| # Omitted config config.mailer_sender = -> { "AppName <#{Settings.get(:support_email)

我在Rails应用程序上有一个设置类,有几个列可由后端的管理员用户更新,即f.I.support_email,因此每次应用程序在新用户注册后发送电子邮件时,我都要重新评估此列

我尝试在Desive初始值设定项中使用一个短而粗的lambda,就像类中的作用域:

Devise.setup do |config|
  # Omitted config
  config.mailer_sender = -> { "AppName <#{Settings.get(:support_email)}>" }
  # Omitted config
end
designe.setup do | config|
#省略配置
config.mailer_sender=->{“AppName”}
#省略配置
结束
但它不工作,因为它返回一个Proc对象

我尝试过在stubby lambda中直接调用。尽管我不知道这是否是一种好的做法:

Devise.setup do |config|
  # Omitted config
  config.mailer_sender = -> { "AppName <#{Settings.get(:support_email)}>" }.call
  # Omitted config
end
designe.setup do | config|
#省略配置
config.mailer_sender=->{“AppName”}.call
#省略配置
结束
这种方法不起作用,因为我收到的值与第一次评估后收到的值相同


有什么建议吗?

我想你必须想办法实现这一目标。你能更具体一点吗?