Tag: 耙子

为什么循环中的Rake任务只执行一次?

我有连接到多个数据库的rails应用程序。 我编写了自定义rake任务,如下所示: task :migrate_accounts_schema => [:environment] do |t| users = User.find :all, :conditions => [“state = 2”], :order => “id asc” users.each do |user| if user.state == 2 ActiveRecord::Base.establish_connection( :adapter => “postgresql”, :host => user.database_host, :port => user.database_port, :username => user.subdomain, :password => “#{user.database_password}”, :database => user.database_name ) Rake::Task[“db:migrate”].invoke end end end 问题是任务执行db:仅针对用户[0]用户(集合中的第一个用户)进行迁移并且没有错误,只是静默地停止… 这是rake –trace的输出 […]

rake / rails .save! 没有更新数据库

我试图通过rake任务保存对数据库的更改。 在我的rake任务中,我做了类似的事情: namespace :parts do desc “Update Parts table, swap names in title” task :swap => :environment do Part.swap end end 在我的Part课程中,我做了 def self.swap Part.all.each do |part| if (part.title =~ REGEX) == 0 part.title.gsub! REGEX, ‘\2 \1’ puts part.title part.save! end end end 但是,这并没有保存部分。 save! 确实回归真实。 puts part.title确实返回了我想要的值。 如果我打电话 Part.update(part.id, title: part.title) 数据库正确更新。 为什么是这样? 我在循环中做错了吗? […]

Ruby on Rails,没有发现Rakefile错误

我在轨道上安装了ruby,postgres。 我安装了所有必需的gem文件,我创建了一个项目,如http://guides.rubyonrails.org/getting_started.html想要的 我在config / routes.rb中添加了以下代码 Blog::Application.routes.draw do resources :posts root to: “welcome#index” end 我正在尝试运行rake routes命令。 但我明白了 rake aborted! No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb) 我检查了互联网..每个人都说“我需要在确切的项目文件夹下运行它”。 但我需要说,我在Windows 7上尝试了近20个不同的文件夹。(我疯了) 我不知道你的专家需要什么,但是: 我用 : Windows 7旗舰版(64位)Ruby200-x64 rake-10.1.0 提前致谢..

耙子因错误而中止

尝试在生产服务器上设置exception_logger插件。 开发机器上的一切都运行良好。 试图在prod服务器上rake db:migrate,我收到此错误: rake aborted! no such file to load — pagination 我错过了什么?

Rails – rake db:重置不清除我的数据库

这里是rails的新手,并尝试使用db \ seeds.rb文件等 首先,我想使用rake db:reset数据库中的所有数据,但它无法正常工作! 这是我的输出 C:\ Sites \ sportproject> rake db:reset 无法删除db / development.sqlite3:# db / development.sqlite3已经存在 – create_table(“sports”,{:force => true}) – > 0.0640s – create_table(“teams”,{:force => true}) – > 0.0340s – add_index(“teams”,[“sport_id”],{:name =>“index_teams_on_sport_id”}) – > 0.0160s – initialize_schema_migrations_table() – > 0.0000s – assume_migrated_upto_version(20130531012951,[“C:/ Sites / sportproject / db / migra] TE“]) – > […]

Rake任务适用于开发,但不适用于生产

我有一个rake任务,每隔几个小时就会改变主页上的数据。 我已经测试了它,它在开发中运行良好。 但它在生产中不起作用。 我需要做些什么来获得我想要看到的更改? 我应该添加重启服务器的命令吗? 这会让服务器承认更改吗? 有更聪明的方法吗? rake任务如下。 它将由heroku的调度程序添加运行,因此它当前位于lib / tasks / scheduler.rake文件中。 desc ‘changes the meta tags’ task :mixup_meta_tags => :environment do regex = /@meta_tag/ file = File.open(‘app/controllers/site_controller.rb’, ‘r’) lines = [] file.each_line do |line| (line =~ regex) ? (lines << replace_line(line)) : (lines << line) end file.close file = File.open('app/controllers/site_controller.rb', 'w') lines.each{|line| file.write […]

耙顺序任务

我遇到了一个非常奇怪的问题。 我有一个任务,重置我的数据库,因为: task :reset => [:drop, :create, :migrate, :seed] 问题是,我在播种时收到错误,因为在后期迁移文件中添加了缺少的列。 一个例子: undefined method new_attr= for User 然而,此属性已在迁移中添加。 奇怪的是,如果我单独执行上述任务,我不会收到任何错误。 任何人都能解释一下吗? 当然,这些任务不能异步运行。 避免错误的另一种方法是使用新属性修改我之前的迁移create_。 然后运行:reset不会触发这些属性的错误。 迁移显然很好,因为我可以单独运行上述任务,而不是捆绑在单个任务下。

Rake不会吞下RSpec消息输出

我的规范提供了我所希望的覆盖范围,但是,在rspec输出中显示以下2条消息: rake resque:scheduler rake environment resque:work 如何在规范运行期间吞下这些,以便它们不会搞砸我的nyancat格式化程序? 规格 describe ‘database rake task’ do include_context ‘rake’ let(:task_paths) { [‘tasks/heroku’] } before do invoke_task.reenable end # rubocop:disable all describe ‘myapp:heroku’ do context ‘:setup’ do context ‘:secrets’ do let(:task_name) { ‘myapp:heroku:setup:secrets’ } context ‘with env’ do it ‘works’ do expect(File).to receive(:exist?).with(‘.env’).and_return(true) expect_any_instance_of(Object).to receive(:system).with(‘heroku config:push –remote production’).and_return(true) expect { […]

使用Railroad for Rails时出现两个错误

我在我的本地机器上安装了diaspora rails应用程序https://github.com/diaspora/diaspora 。 然后我安装了Railroads图生成器http://railroad.rubyforge.org/#download 按照网站上的说明,我构建了一个rake任务来运行它,但是当我运行它时似乎得到两个单独的错误。 第一个错误是没有dot命令: sh: dot: command not found 在没有rake的情况下运行时我也会得到第二个错误: Seans-MacBook-Pro:diaspora sean$ railroad -o models.dot -M /Users/sean/.rvm/gems/ruby-1.9.3-p194@diaspora/gems/railroad- 0.5.0/lib/railroad/app_diagram.rb:54:in `disable_stdout’: uninitialized constant AppDiagram::PLATFORM (NameError) 当我跑rake时: Seans-MacBook-Pro:diaspora sean$ rake doc:diagrams WARNING: Nokogiri was built against LibXML version 2.7.3, but has dynamically loaded 2.7.8 railroad -i -l -a -m -M | dot -Tsvg | sed ‘s/font-size:14.00/font-size:11.00/g’ […]

rails3 rake没有运行我的测试

在一个新的R3应用程序中,我似乎无法运行任何测试(有2个,“/”的规范function测试和我创建的另一个unit testing) 看到这个输出: rails_app$ rake test –trace (in /Users/jan/portfolio/rails_app) ** Invoke test (first_time, not_needed) rails_app$ 可能有什么不对? first_time是什么意思,not_needed’? 可能与事实有关,我正在使用Mongoid ……