标签: rake-task

Rake 任务和命名空间

将具有不同名称空间的 rake 任务放在任务下的不同文件夹中是一个好主意吗?如果只有一个具有不同名称空间的文件应该怎么做?

ruby-on-rails rake-task

3
推荐指数
1
解决办法
6434
查看次数

Rails在生产中未初始化不变

我有一个奇怪的问题.在开发中这个问题不存在,但在生产中rake将这个错误消息抛给我"未初始化的常量程序"

"程序"是一个活动的记录模型,它就在那里,它位于模式文件中,它位于app/model文件夹中.

我执行它就像这个rake import:xml RAILS_ENV = production.可能是什么问题呢?下面是完整的堆栈跟踪

rake import:xml RAILS_ENV=production --trace
(in /usr/mobloom/www/htdocs/remindertest)
** Invoke import:xml (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute import:xml
rake aborted!
uninitialized constant Program
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:92:in `const_missing'
/usr/mobloom/www/htdocs/remindertest/lib/tasks/import_assets.rake:18
/usr/mobloom/www/htdocs/remindertest/lib/tasks/import_assets.rake:9:in `each'
/usr/mobloom/www/htdocs/remindertest/lib/tasks/import_assets.rake:9
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
Run Code Online (Sandbox Code Playgroud)

第18行:program = …

ruby-on-rails passenger rake-task

2
推荐指数
1
解决办法
3229
查看次数

如何将我的ruby gem发布到我自己的存储库?

我写了一篇文章ruby gem,我希望有一个rake任务,用于将gem发布到我自己的GemInABox存储库中:http://my-gem-repo.com.

实现这一目标的最简单方法是什么?

另外,我想阻止默认发布到Rubygems.org.

ruby rake gem rake-task

2
推荐指数
1
解决办法
1709
查看次数

如何在Ruby循环中增加计数器

对于我的Rails应用程序,我想建立一个耙的任务,将用10填充数据库invoices的每个user:

def make_invoices
  User.all.each do |user|
    10.times do
      date = Date.today
      i = user.invoices.create!(:number => user.next_invoice_number,
                                :date   => date += 1.year)
      i.save
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我如何增加date一年?

ruby ruby-on-rails rake-task

2
推荐指数
1
解决办法
8061
查看次数

耙子流产了!对于确实存在的未初始化常数

我已经建立了一个rake任务 -

# SET RAKE TASK NAMESPACE
namespace :db do
# RAKE TASK DESCRIPTION
desc "Fetch property information and insert it into the database"

# RAKE TASK NAME    
task :insert_properties do

    # REQUIRE LIBRARIES
    require 'nokogiri'
    require 'open-uri'

    # OPEN THE XML FILE
    mits_feed = File.open("app/assets/xml/mits.xml")

    # OUTPUT THE XML DOCUMENT
    doc = Nokogiri::XML(mits_feed)

    # FIND PROPERTIES OWNED BY NORTHSTEPPE AND CYCLE THORUGH THEM
    doc.xpath("//Property/PropertyID/Identification[@OrganizationName='northsteppe']").each do |property|

        # GATHER EACH PROPERTY'S INFORMATION
        information = {
            "street_address" => property.xpath("/Address/AddressLine1/text()"),
            "city" => …
Run Code Online (Sandbox Code Playgroud)

ruby rake ruby-on-rails rake-task

2
推荐指数
1
解决办法
452
查看次数

在rails应用程序中运行rake任务

我想在rails应用程序中运行资产预编译任务,因为我有许多依赖项将更改代码,在这种情况下,无论何时更改我都需要运行脚本,因为我无法让服务器访问它们所以我提供从他们自己的GUI可以运行脚本,因此,我已经构建了UI来运行任务与一些参数,如

system("Template='#{params[:template]}' Theme='#{params[:theme]}' rake assets:precompile)
Run Code Online (Sandbox Code Playgroud)

我从UI获取了两个值(params [:template],params [:theme]).我想在另一个路径(站点路径)中运行此任务的另一个意思是管理端UI是那个任务应该在Site目录中执行,

  if(params[:theme_script] == "true")
      template=Template.where(:name => params[:template]).first
     if template
      theme = template.themes.where(:name => params[:theme]).first
      if theme
    #   Dir.chdir "#{THEMEPATH}"do
    #     `Template="#{template.name}" Theme="#{theme.name}" rake assets:precompile`
    #   end
    #      sleep 10
    #      system("#{Rails.root.to_s}/lib/shell_script.sh")
    #      RunRake.run_rake(template.name,theme.name)
    #   Dir.chdir "#{THEMEPATH}"do
    #     Rake::Task['assets:precompile'].invoke
    #   end
          ENV["Template"] = template.name
          ENV["Theme"] = theme.name
          precompile_task = "bundle exec rake assets:precompile --trace 2>&1"
          output = Dir.chdir(THEMEPATH) { %x[ #{precompile_task} ] }
          flash[:notice] = "Asset created successfully"
      else
        flash[:notice] = "U have enter …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails rake-task ruby-on-rails-3.1 asset-pipeline

2
推荐指数
1
解决办法
3770
查看次数

heroku run rake db:migrate:没有这样的文件或目录

我是Rails的新手,我正在尝试将我的第一个rails应用程序上传到Heroku.

我已经在Heroku中安装了我的应用程序,但是当我尝试创建数据库时出现此错误:

vagrant@rails-forge:~/apps/betsman$ heroku run rake db:migrate --app betsman
Running `rake db:migrate` attached to terminal... up, run.3809
: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这真的不告诉我任何事情.所以我检查了Heroku日志,并得到以下错误:

:没有这样的文件或目录00:00 app [web.1]:/ usr/bin/env:ruby

vagrant@rails-forge:~/apps/betsman$ heroku logs
2014-06-17T02:23:23.680853+00:00 heroku[api]: Enable Logplex by personal_email
2014-06-17T02:23:23.680979+00:00 heroku[api]: Release v2 created by personal_email
2014-06-17T02:25:22.844616+00:00 heroku[api]: Starting process with command `echo $RAILS_ENV` by personal_email
2014-06-17T02:38:43.002052+00:00 heroku[api]: Attach HEROKU_POSTGRESQL_CRIMSON resource by personal_email
2014-06-17T02:38:43+00:00 heroku[slug-compiler]: Slug compilation finished
: No such file or directory00:00 app[web.1]: /usr/bin/env: ruby
2014-06-17T02:38:49.957936+00:00 heroku[web.1]: State changed from …
Run Code Online (Sandbox Code Playgroud)

ruby heroku rake-task ruby-on-rails-4

2
推荐指数
1
解决办法
1812
查看次数

耙子流产!Rails无法生成

我正在学习rails并逐步使用lynda视频系列.我试过耙子.它给出了以下错误.

$ rake generate migration DoNothingYet 
rake aborted!
Don't know how to build task 'generate'
Run Code Online (Sandbox Code Playgroud)

我用--trace来找到问题.但是,它没有指出错误.

$ rake generate migration DoNothingYet --trace
rake aborted!
Don't know how to build task 'generate'
/Users/boss/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/task_manager.rb:62:in `[]'
/Users/boss/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:149:in `invoke_task'
/Users/boss/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:106:in `block (2 levels) in top_level'
/Users/boss/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:106:in `each'
/Users/boss/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:106:in `block in top_level'
/Users/boss/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:115:in `run_with_threads'
/Users/boss/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:100:in `top_level'
/Users/boss/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:78:in `block in run'
/Users/boss/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling'
/Users/boss/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:75:in `run'
/Users/boss/.rbenv/versions/2.2.2/bin/rake:33:in `<main>'
Run Code Online (Sandbox Code Playgroud)

ruby rake-task ruby-on-rails-4

2
推荐指数
1
解决办法
537
查看次数

Rails rake 任务在生产中失败:“NoMethodError:为 URI:Module 调用私有方法‘open’”

我正在编写一个 rake 任务,它的功能是从其他网页获取信息。为此,我使用 open-uri 和 nokogiri。我已经在开发中进行了测试并且它可以完成工作,但是随后我部署到生产服务器并失败了。

这是代码:

require 'open-uri'
require 'nokogiri'

desc 'recover eventos llerena'
task recover_eventos_llerena: :environment  do

  enlaces = []

  # Getting index and all links
  url = open(URI.parse("https://llerena.org/eventos/lista"))
  page = Nokogiri::HTML(url)

  page.css("a.fusion-read-more").each do |line|
    enlaces.push(line.attr('href'))
  end

  enlaces = enlaces.uniq

  #Inspecting everyone of them
  enlaces.each do |link|
    url = open(URI.parse(link))
    page = Nokogiri::HTML(url)

    title = page.css("h1").text
    if Evento.find_by_titulo(title) == nil

      description = page.css(".tribe-events-single-event-description.tribe-events-content.entry-content.description p").text
      date = page.css(".tribe-events-abbr").attr('title')
      image = page.css(".size-full").attr('src')

      Evento.create!(
        titulo: title,
        remote_imgevento_url: image,
        info: description,
        fecha: …
Run Code Online (Sandbox Code Playgroud)

rake open-uri ruby-on-rails rake-task ruby-on-rails-5

2
推荐指数
2
解决办法
2256
查看次数

Heroku 调度程序任务未按预期运行

我正在使用 Heroku 的 Scheduler 插件以预定的时间间隔在我的应用程序中运行作业,就像传统服务器环境中的 cron 一样。这些任务相当琐碎,因为它们只是将一个 sidekiq 工人排队。但是,正如您在下面的照片中看到的,由于:update_job_posts某种原因无法在 4:30UTC 运行。

我不能以这种方式将这两项工作结合起来,还是需要单独运行?

如果我通过heroku run它运行任务。heroku run用于执行您的作业,因此您可以放心,如果它与 heroku run 一起工作,它将在调度程序中工作。

$ heroku run rake scheduler:update_job_posts
Running rake scheduler:update_job_posts on ? agile-temple-76502... up, run.6604 (Free)
Updating Job feed...
I, [2018-06-06T04:40:50.341411 #4]  INFO -- : [ActiveJob] Enqueued JobFeedImportJob (Job ID: e3b9a0ed-aacb-45af-84f9-ef02acfeb85e) to Sidekiq(default)
I, [2018-06-06T04:40:50.344400 #4]  INFO -- : [ActiveJob] Enqueued RemoteFeedImportJob (Job ID: b965853d-adb3-46ee-b48d-f19306ce9d2a) to Sidekiq(default)
done.
Run Code Online (Sandbox Code Playgroud)

此外,heroku logs --tail显示正在运行的其他任务:

heroku[scheduler.5009]: Starting process …
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails heroku scheduled-tasks rake-task

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