Tag: 耙子

使用rails的动态命名空间rakes和parser类?

我有一组解析器在逻辑上有很大不同,但具有完全相同的方法和输出。 我已经设计了一些大师Rake ,我很好奇,如果我提出的可能导致一些意外或奇怪的行为。 基本上我的parse.rake看起来像: require ‘app/models/provider’ require ‘config/environment.rb’ Provider.all.each do |provider| require “lib/tasks/#{provider.name}.rb” Kernel.const_get(provider.name).provider = provider namespace provider.name do task :provider_task do #Parse method Kernel.const_get(provider.name).provider_task() end end end 由于类是ruby中的常量, Kernel.const_get我使用Kernel.const_get从varname访问类方法。 我的类看起来像( ABC.rb ): Class ABC cattr_accessor :provider def self.provider_task() #Parse and add stuff to environment end end 通过这种设置,我可以轻松调用rake ABC:provider_task来运行特定的解析器。 cattr_accessor允许我轻松地引用实际的提供者模型。 思考?

释放gem时,rake释放会挂起

我正在尝试将我的第一颗gem发布给Ruby Gems。 gem在当地运作良好。 我发布它使用: $rake release 这给了我在控制台中的这个: example_gem 0.0.3 built to pkg/example_gem-0.0.1.gem Tagged v0.0.1 Pushed git commits and tags 然后这个过程就会挂起。 我等了20分钟,然后取消了。 当我试图再次释放时,我得到了: rake aborted! This tag has already been committed to the repo. 所以我认为gem已成功提交,但16小时后,gem不在我的Ruby Gems帐户下。 所以我碰到了版本并再次尝试使用–trace ,但是进程挂起在同一个地方,只有以下添加输出: ** Invoke release (first_time) ** Execute release example_gem 0.0.3 built to pkg/example_gem-0.0.3.gem Tagged v0.0.3 Pushed git commits and […]

不知道如何构建任务’db:create’

我正在从sqllite db迁移到mysql2。 我有mysql运行(并更改了database.yml)但由于某种原因我的rake db:create回来了: rake aborted! Don’t know how to build task ‘db:create’ 当我执行:rake -T时,列表中不会显示数据库任务。 我在Rails 3.2.9上 我在这里错过了什么明显的东西?

Rails:帮助解决rake中止错误!

我一直在尝试运行rake db:migrate命令,但它无法正常工作。 我卸载并安装了gem,但没有运气。 我在某处读到了o.9不稳定,0.8.7没问题。 我试了但是我也有错误.. 现在错误是 Fayimora-Femi-Baloguns-MacBook-Pro:sample_app fayimora$ bundle exec rake db:migrate /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /usr/local in PATH, mode 040777 /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /usr/local in PATH, mode 040777 (in /Users/fayimora/Sites/rails_projects/sample_app) DEPRECATION WARNING: config.generators in Rails::Railtie is deprecated. Please use config.app_generators instead. (called from /Users/fayimora/Sites/rails_projects/sample_app/config/application.rb:12) DEPRECATION WARNING: config.generators in Rails::Railtie […]

仅调用一次时执行两次Rake任务

我写了一个非常简单的rake任务来尝试找到这个问题的根源。 namespace :foo do task bar: :environment do puts ‘RUNNING’ end end 在控制台中执行rake foo:bar输出为: RUNNING RUNNING 当我执行任何rake任务时会发生这种情况。 以前有人遇到过这样的事吗? 编辑 上面的rake任务就是写在.rake文件中的所有内容。 这是目前正在使用的Rakefile。 require File.expand_path(‘../config/application’, __FILE__) OurApp::Application.load_tasks 这里还有运行–trace的输出。 ** Invoke foo:bar (first_time) ** Invoke environment (first_time) ** Execute environment Hostname is: ourhost ** Execute foo:bar RUNNING RUNNING

缺少Rails 2.3.4gem。 即使它已安装!

跑雪豹。 尝试卸载,然后重新安装。 每当我运行rake任务时仍会出现相同的错误。 mbpro:redmine shereef $ ruby​​ -v ruby 1.8.7(2009-06-12 patchlevel 174)[i686-darwin10.0.0] mbpro:redmine shereef $ rails -v Rails 2.3.4 mbpro:redmine shereef $ which rails 在/ usr / local / bin目录/轨 mbpro:redmine shereef $ gem -v 1.3.5 mbpro:redmine shereef $是哪个gem 在/ usr / local / bin目录/gem mbpro:redmine shereef $ rake -v (在/ Users / shereef / […]

rake db:migrate在通过RVM升级ruby 2.2.2到2.2.3之后不起作用

我最近使用RVM从Ruby 2.2.2升级到2.2.3。 这在我的开发环境中弄乱了一些东西但是由于有用的错误消息我到目前为止可以处理它。 现在我想向我的数据库添加一些迁移并遇到此错误: $ rake db:migrate /Users/howard/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval’: /Users/howard/.rvm/rubies/ruby-2.2.3/bin/rake:4: syntax error, unexpected tSTRING_BEG, expecting keyword_do or ‘{‘ or ‘(‘ (SyntaxError) exec “$bindir/ruby” -x “$0” “$@” ^ from /Users/howard/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `’ 非常感谢任何帮助。 我以为RVM会阻止这样的事情发生吗? 我使用最新版本的OS X,Ruby和Rails。 非常感谢提前!

激活的Ruby RAKE 10.0.1,需要10.0.0

当我尝试运行“rake test”时出现此错误: avery@ubuntu:~/rails_projects/depot$ rake test rake aborted! You have already activated rake 10.0.1, but your Gemfile requires rake 10.0.0. Using bundle exec may solve this. /home/avery/.rvm/gems/ruby-1.9.3-p327/gems/bundler-1.2.2/lib/bundler/runtime.rb:31:in `block in setup’ /home/avery/.rvm/gems/ruby-1.9.3-p327/gems/bundler-1.2.2/lib/bundler/runtime.rb:17:in `setup’ /home/avery/.rvm/gems/ruby-1.9.3-p327/gems/bundler-1.2.2/lib/bundler.rb:116:in `setup’ /home/avery/.rvm/gems/ruby-1.9.3-p327/gems/bundler-1.2.2/lib/bundler/setup.rb:7:in `’ /home/avery/rails_projects/depot/config/boot.rb:6:in `’ /home/avery/rails_projects/depot/config/application.rb:1:in `’ /home/avery/rails_projects/depot/Rakefile:5:in `’ (See full trace by running task with –trace) 当我尝试运行“捆绑exec rake”时,我得到: rake aborted! Could not […]

铁轨找不到耙gem

我有一个在docker中运行的基本Rails应用程序。 我可以很好地启动它并提供响应。 我可以跑rake -T就好了。 但是我无法运行Rails生成命令。 它告诉我Could not find rake-12.3.1 in any of the sources $ docker-compose run main bundle exec rails generate controller Welcome index Starting cognitopoc_db_1 … done Could not find rake-12.3.1 in any of the sources Run `bundle install` to install missing gems. 这是我的捆绑环境: $ docker-compose run main bundle env Starting cognitopoc_db_1 … […]

仅为Rake任务运行初始化程序

我想在执行Rake任务时运行某个初始化程序,但在运行Rails服务器时则不行。 区分Rake调用和服务器调用的最佳方法是什么?