我有一个名为pull_orders的rake任务,它调用RemoteDbConnector类的方法来执行诸如建立与外部数据库的连接、生成原始SQL查询、执行查询等操作并将记录存储在本地数据库中。在尝试对其进行测试时,我偶然发现了thisanswer这让我开始思考我的设计是否有缺陷。rake任务真的应该是一个类轮吗?如果是这样,我应该把所有这些方法调用放在哪里,因为它们需要以特定的顺序调用?我的任务是这样的:namespace:dbdodesc'findsandpopulatesdatafromremotedb'taskpull_orders::environmentdo...colum
我想安装一个插件,但我担心它会安装很多不必要的东西。我想查看rake从中获取安装说明的任何文件,并删除任何不必要的内容。我相信这是Rakefile。但是我不确定当rake查看rakefile时会发生什么-它是执行整个rakefile还是只执行指定为与此“安装”过程相关的rakefile部分? 最佳答案 rake文件是任务的集合,当您使用参数(在本例中为安装)调用rake时,这就是get执行的任务。(如果你来自Java,它类似于ant)所以,不,当您调用“rake+task”时,rake不会执行整个rakefile,而只会执行所选的任
我有rake任务,我想按正确的顺序运行。我想运行一个rake任务,它以正确的顺序运行其他rake任务。我该怎么做? 最佳答案 你应该考虑像这样定义任务之间的依赖关系task:primary=>[:secondary]task:secondarydoputs"DoingSecondaryTask"end但是如果你真的,真的需要直接调用任务,你可以使用invoke来调用另一个任务task:primarydoRake::Task[:secondary].invokeendtask:secondarydoputs"DoingSecondar
我有一个模型Idea,它has_attached_file:file1和has_attached_file:file2。出于开发目的,我有一个“Bootstrap”任务,负责创建一些初始对象(这样您就不必创建用户,然后每次删除sqlite文件时都上传一些文件)。我应该如何从Rake任务中执行此操作? 最佳答案 尝试:Idea.new(:name=>'bla',:file1=>File.open('/some/path/to.file'),:file2=>File.open('/some/path/to.file'))
我想创建一个包含文件但在包内重命名的包。例如:Rake::PackageTask.new("rake","1.2.3")do|p|p.package_files.include("aa.rb")end我希望aa.rb在包内被命名为bb.rb。我怎样才能优雅地做到这一点? 最佳答案 查看PackageTasksource,您似乎可以定义一个新任务(比如rename_files),它依赖于Rake::PackageTask定义的p.package_dir_path任务。在rename_files任务中,您可以重命名package_dir
关注截屏视频http://railscasts.com/episodes/342-migrating-to-postgresql?autoplay=true直到"rakedb:create:all"的步骤并得到错误:couldnotconnecttoserver:NosuchfileordirectoryIstheserverrunninglocallyandacceptingconnectionsonUnixdomainsocket"/tmp/.s.PGSQL.5432"?引用Rails:rakedb:create:allfailstoconnecttoPostgreSQLdatab
我正在尝试编写一个将创建一个表并添加几个索引的迁移。这是迁移:classCreatePages50t.string"permalink"t.integer"position"t.boolean"visible"t.integer"subject_id"add_index("pages","subject_id")add_index("pages","name")t.timestampsendendend当我尝试运行此迁移时,出现以下错误:PG::Error:ERROR:relation"pages"doesnotexist:CREATEINDEX"index_pages_on_subj
尝试在邮件程序呈现的View中获取图像的完整URL。Rails3+中是否有正确的方法来获取Sprockets生成的完整url?我知道请求对象hack,但由于邮件程序是在rake任务中调用的,显然,请求数据不可用。我正在运行Rails4beta1(edge) 最佳答案 在Rails4中,您需要在production.rb中包含以下内容config.action_controller.asset_host='yourdomain.com'config.action_mailer.asset_host='http://yourdomain
我的rake任务中有这段代码:variables[:hotels].push({:id=>offering.ID,:name=>offering.vendor.Name,:placing_name=>offering.Name,My::Media::Account.find_by_guid(offering.VendorID).photos.eachdo|p|:hotel_images.push({:id=>p.id,:image=>p.image,:url=>"http://m.website.com/uploads/photo/image/#{p.id}/#{p.image}"})
我正在尝试使用rspec测试我的rake任务,它运行良好,但问题是之后没有删除记录。我已将config.use_transactional_fixtures=true放入配置文件中,没有任何影响。在其他测试中,它运行良好。这是我的代码:require'rspec'require'spec_helper'require'rake'describe'my_appraketasks'dodescribe'rake_task_1'dobefore{MyApp::Application.load_tasks}it'shouldtestit!'do10.times{create(:record)}