Tag: rake task

Rails:rake db:test:准备Vs rake测试:准备

作为指南,用于准备测试数据库的命令是 bundle exec rake db:test:prepare 但是,我发现以下命令也适用于我并为我创建了测试数据库。 bundle exec rake test:prepare 如果是的话,想知道这是否是一个有效的命令。 我在哪里可以找到文档。 在rails 3.2.8测试rails 3.2.8

如何在Rake任务中执行命令?

我在rails应用程序中有rake任务。 我想在rake任务中运行命令行命令。 我怎样才能做到这一点。 我试过以下但失败了 desc “Sending the newsletter to all the users” task :sending_mail do run “cd #{RAILS_ROOT} && ar_sendmail -o -t NewsLetters -v” system “cd #{RAILS_ROOT} && ar_sendmail -o -t NewsLetters -v &” end 上面的run命令抛出run method undefined&System命令没有抛出任何错误但没有执行。

Rails是否为rake任务运行初始值设定项?

我运行rake任务时是否执行了config / initializers的脚本?

如何构建任务’elasticsearch:import:model’

好吧,我安装了elasticsearch-rails gem(版本0.1.5),我可以清楚地看到gem文件中的任务。 但是当我跑步的时候 bundle exec rake environment elasticsearch:import:model CLASS=’Comment’ 我收到这个错误。 运行rake environment -D也没有向我显示任务。 elasticsearch正在运行,如果我curlhttp://localhost:9200它会响应我。 为什么这不起作用?

在Rake任务中使用环境变量

task :some_task, :environment do |t, args| puts Rails.env #=> development, production, etc puts ENV #=> {} end 我设置了一些环境变量(通过本地.env,或通过Herokusan通过Heroku Config),例如要使用哪个AWS桶,我想在rake任务中引用它们,但ENV是一个空哈希。 我知道与环境有关的事情因为:environment任务依赖而且Rails.env有一个值,但我不清楚细节。 那么,我如何在Rake任务中使用ENV ?

如何覆盖自定义数据库适配器的rake任务?

我编写了一个自定义数据库适配器,可以在rails服务器运行时正常有效地工作。 我现在想添加用于创建,删除和迁移数据库的常用rake任务定义。 我想实现: db:[drop|create|migrate] 如何使用我的gem打包这些定义,以便它们覆盖使用gem的任何人的默认定义? 我查看了其他适配器的来源,但所有rake任务逻辑似乎都被烘焙到active_record本身,每个任务只是打开适配器名称。

如何构建任务’db:populate’

1 namespace :db do 2 desc “Fill database with sample videos” 3 task :populate => :environment do 4 require ‘faker’ 5 Rake::Task[‘db:reset’].invoke 6 100.times do |n| 7 headline = Faker::Lorem.sentence(3) 8 video = Faker::Lorem.words(5) 9 Video.create!(:headline => headline, 10 :video => video) 11 end 12 end 13 end 我目前在lib / tasks / sample_data.rb中有这个rake任务 运行rake db:populate我得到错误, […]

从rake任务渲染视图

我正在尝试从rake任务发送邮件。 我已经设法发送电子邮件,但问题是我发送的文件。 我想发送一个视图,每次发送邮件时都会修改。 我已经安装了gem render_anywhere来渲染我的rake任务中的视图但是我一直有这个错误: NoMethodError:字符串的未定义方法`formats’:0x007ff1a1068b88> 这是我的rake任务的一部分,应该做的工作: require’grand_anywhere’包括RenderAnywhere需要Rails.root.join(’app’,’helpers’,’reports_helper’) namespace:reports do desc’将视图写入文件的示例’任务:example =>:environment do class RakeActionView Report.first ) html = view.render(:template =>”#{Rails.root}/app/views/reports/organize.html.erb”, layout: false) pdf = PDFKit.new(html) pdf.stylesheets << "#{Rails.root}/app/assets/stylesheets/print/reports-print.css.scss"

使用when gem时将env变量设置为cron计划任务

在下面的代码中,我想设置一些存储在文件中的环境变量。 我错过了什么吗? 在’bundle exec when’之后在生产中打印env没有显示设置的环境变量。 每当gem用于预定的cron任务并花费数小时来计算这个。 也可以建议任何其他方式。 every 1.day, :at => ‘2:30 am’ do # Run shell script to assign variables and continue the rake task system “for line in `cat config/myEnvFile.env` ; do export $line ; done” rake “task:continue_doing_my_task” end

Rails 3:如何拦截任何http请求

让我说我在app / assets / images / privateimages / myrestrictedimage1.jpg有一个图像如果我试图通过url直接转到图像说像 http://localhost:5555/assets/privateimages/myrestrictedimage1.jpg 我能够查看图像。 我想有办法检查任何http请求,以决定是否允许用户访问它。 我知道我可以在控制器中使用before_filter进行一些预处理,然后继续执行任何控制器操作,但我不认为这会对我有所帮助,因为我需要尝试执行控制器操作才能使其生效。 我听说我可以用rake任务做到这一点但经过多次搜索后我找不到任何类似于我想做的事情。 也许我必须创建一个ruby gem才能做到这一点,但我不知道如何做到这一点。 谁能指出我正确的方向? 谢谢。