相关疑难解决方法(0)

如何检测里面的Rails环境

这个问题可能只意义,如果你知道的,只要创业板创造的cron作业.

对于我的应用程序,我想whenever在所有环境中使用,包括测试和开发.
我schedule.rb看起来像这样:

set :output, {
    :error    => "#{path}/log/error.log",
    :standard => "#{path}/log/cron.log"
}

set :environment, Rails.env.to_sym
every 5.minutes do
  rake 'db:activity:synchronize'
end
Run Code Online (Sandbox Code Playgroud)

但它失败了Rails.env.to_sym(同样代表 RAILS_ENV):

/home/marius/.rvm/gems/ruby-1.9.2-p290@uxolo/gems/whenever-0.6.8/lib/whenever/job_list.rb:21:in `eval': uninitialized constant Whenever::JobList::Rails (NameError)
    from /home/marius/.rvm/gems/ruby-1.9.2-p290@uxolo/gems/whenever-0.6.8/lib/whenever/job_list.rb:21:in `eval'
    from /home/marius/.rvm/gems/ruby-1.9.2-p290@uxolo/gems/whenever-0.6.8/lib/whenever/job_list.rb:21:in `initialize'
    from /home/marius/.rvm/gems/ruby-1.9.2-p290@uxolo/gems/whenever-0.6.8/lib/whenever.rb:15:in `new'
    from /home/marius/.rvm/gems/ruby-1.9.2-p290@uxolo/gems/whenever-0.6.8/lib/whenever.rb:15:in `cron'
    from /home/marius/.rvm/gems/ruby-1.9.2-p290@uxolo/gems/whenever-0.6.8/lib/whenever/command_line.rb:41:in `run'
    from /home/marius/.rvm/gems/ruby-1.9.2-p290@uxolo/gems/whenever-0.6.8/lib/whenever/command_line.rb:8:in `execute'
    from /home/marius/.rvm/gems/ruby-1.9.2-p290@uxolo/gems/whenever-0.6.8/bin/whenever:38:in `<top (required)>'
    from /home/marius/.rvm/gems/ruby-1.9.2-p290@uxolo/bin/whenever:19:in `load'
    from /home/marius/.rvm/gems/ruby-1.9.2-p290@uxolo/bin/whenever:19:in `<main>'
Run Code Online (Sandbox Code Playgroud)

所以,我的问题基本归结为:

  1. 如何访问当前环境,或
  2. 我该怎么做才能whenever在所有环境中使用?

cron rake ruby-on-rails whenever ruby-on-rails-3

20
推荐指数
4
解决办法
1万
查看次数

Rails - 每当宝石 - 动态值

可以说我有这样的cronjob:

every 1.day, :at => '4:30 am' do  
  runner "MyModel.task_to_run_at_four_thirty_in_the_morning"  
end  
Run Code Online (Sandbox Code Playgroud)

虽然,我想让'1.day'更具动态性,例如通过管理页面中的表单更改值.

然后它可能看起来像这样:

every Constant.find(2).value, :at => '4:30 am' do 
Run Code Online (Sandbox Code Playgroud)

要么

@const = Constant.find(2)
every @const.span, :at => @const.time do 
Run Code Online (Sandbox Code Playgroud)

任何人都可以想出如何使这项工作?

显然,原因是我可以使用我网站上数据库中存储的值,就像消息说的那样

<%= "The next update is in less than #{@const.time}" #or something similar %>
Run Code Online (Sandbox Code Playgroud)

ruby cron gem ruby-on-rails whenever

8
推荐指数
3
解决办法
3355
查看次数

当Rails Mailer发送电子邮件时,导致文件结束错误的原因是什么?

使用gmail帐户开发的Rails 3.2.8应用程序作为"发送地址".邮件发送工作时我的environment.rb文件包含:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
   :address => "smtp.gmail.com",       
   :port =>  587,                         
   :domain => "gmail.com",              
   :authentication => :login,            
   :user_name => "accountname",         
   :password => "123456789"              
}
Run Code Online (Sandbox Code Playgroud)

我在我的应用程序日志中收到此消息:EOFError(到达文件末尾):当上面的代码更改为如下所示:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
   :address => "mail.company.com",
   :port =>   25,   
   :domain => "company.com", 
   :authentication =>   :login,
   :user_name =>  "accountname", 
   :password => "123456789"
}
Run Code Online (Sandbox Code Playgroud)

我可以告诉您,我可以向电子邮件地址发送手动电子邮件,并在使用ThunderBird等电子邮件客户端时看到它,因此我知道accountname@company.com正常运行.

我不明白文件结束错误是如何发挥作用的.我也无法弄清楚如何获得更多信息出现在日志中.

我期待着阅读一些确定文件结束原因的建议.

Started POST "/sendInvites?locale=en&lot_id=18&user_id=17" for 99.99.99.99 at 2013-10-03 08:52:09 -0700
Processing by WaitingListsController#sendInvites as HTML
  Parameters: {"authenticity_token"=>"uwz/6pW1rLPXR4gU3m3OwCmU0O3DSJ/haNM2/ai+OR8=", "locale"=>"en", "lot_id"=>"18", "user_id"=>"17"}
=======>>>> Beginning Send Invitation Process …
Run Code Online (Sandbox Code Playgroud)

email ruby-on-rails actionmailer

7
推荐指数
1
解决办法
3167
查看次数