ruby-on-rails - 如何根据当前rails环境设置类变量

标签 ruby-on-rails ruby ruby-on-rails-3

我有一个/lib/tasks/send_mailer_job.rb 文件。

在生产环境中,我希望该文件每 5 分钟运行一次。然而,在开发时,等待 5 分钟来测试更改会减慢我的速度,所以我希望是 1 分钟。最近我一直在更新代码中的变量,但这很容易出错,因为我可能会 checkin 错误的 # 并终止生产服务器。如何根据环境设置该变量

我有以下内容:

 records = Stuff.find(:all, :conditions => ["last_activity_at <= ?", (Time.now - 500)])
 .....  1.minute.from_now

让这两个#s、500 和 1.minute.form_now 根据 rails 环境可变的正确方法是什么,对于开发人员,我想要比生产和暂存时更短的#s。

谢谢

最佳答案

使用Rails.env。示例如下。

class Stuff < ActiveRecord::Base

  def self.latest
    time = Rails.env == "production" ? 5.minutes.from_now : 1.minute.from_now
    self.find(:all, :conditions => ["last_activity_at <= ?", time])
  end

end

关于ruby-on-rails - 如何根据当前rails环境设置类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6821364/

相关文章:

ruby-on-rails - 嵌套模型表单中的Collection_select

javascript - 替换 Rails 表单字段

JavaScript 未在 Rails 测试环境中加载

ruby - 如何使用 capybara 和 poltergeist 检索 innertext?

ruby-on-rails - 尝试在 Ruby on Rails 中打开 URL 时出错

ruby-on-rails - 多线程 rake 任务

ruby-on-rails - Ruby case 语句未按预期执行

javascript - Rails 将 js 加载资源与实际路径混淆,并将其处理为 Controller 操作

ruby-on-rails - #<Mongoid::的未定义方法 `page'

mysql - Rails 多级关联链中不同模型的查询