使用Rails在初始化程序中进行惰性求值

时间:2013-12-18 12:46:57

标签: ruby-on-rails-3.2 lazy-evaluation

我在Rails应用程序上有一个Settings类,其中有几个列可由后端的管理员用户f.i更新。 support_email,所以我希望每次应用在新用户注册后发送电子邮件时重新评估此列。

我在Devise初始化程序中尝试使用stubby lambda,就像类中的作用域一样:

Devise.setup do |config|
  # Omitted config
  config.mailer_sender = -> { "AppName <#{Settings.get(:support_email)}>" }
  # Omitted config
end

但它不起作用,因为它返回一个Proc对象。

我在stubby lambda中直接尝试使用 .call ,虽然我不知道这是不是一个好习惯:

Devise.setup do |config|
  # Omitted config
  config.mailer_sender = -> { "AppName <#{Settings.get(:support_email)}>" }.call
  # Omitted config
end

这种方法不起作用,因为我收到了第一次评估后收到的相同价值。

有什么建议吗?

0 个答案:

没有答案