我有一个rake任务来填充我的数据库,这取决于faker,所以在顶部有:
require 'faker'
问题是我没有在生产中安装faker所以所有rake命令(例如db:migrate)都在那个需要行上失败,说faker缺失了.
显然我可以在生产中安装faker以解决这个问题,但我不需要它.那么什么是正确的解决方案 - 我能以某种方式忽略生产中的某些rake任务吗?
这就是我在Gemfile中的内容:
source 'http://rubygems.org'
gem 'rails', '3.0.5'
gem 'sqlite3'
gem 'hoptoad_notifier', '= 2.4.2'
group :development, :test do
gem 'ruby-debug'
gem "factory_girl_rails"
gem "database_cleaner"
gem "rspec-rails"
gem "cucumber-rails"
gem "capybara"
gem "launchy"
gem "redgreen"
gem "faker"
gem "remarkable_activerecord"
end
Run Code Online (Sandbox Code Playgroud)
当我做
git push heroku master
Run Code Online (Sandbox Code Playgroud)
在我的屏幕上,这就是我所看到的
Installing rspec-core (2.5.1)
Installing rspec-expectations (2.5.0)
Installing rspec-mocks (2.5.0)
Installing rspec (2.5.0)
Run Code Online (Sandbox Code Playgroud)
我认为Heroku安装在生产模式,那么为什么要安装rspec?
我正在尝试将代码推送到Heroku,似乎系统gem"hoe"以某种方式包含在其他一些gem中(geokit就是其中之一,但即使从Gemfile中删除了这个宝石也没有运气).这导致Heroku失败,因为它无法更新系统宝石.怎么解决这个问题?
Installing geokit (1.5.0)
Installing geonames (0.2.2)
Installing hoe (2.9.1) /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/installer.rb:170:in `install': hoe requires RubyGems version >= 1.4. Try 'gem update --system' to update RubyGems itself. (Gem::InstallError)
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/source.rb:95:in `install'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/installer.rb:55:in `run'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/installer.rb:44:in `run'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/installer.rb:8:in `install'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/cli.rb:225:in `install'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/vendor/thor/task.rb:22:in `send'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/vendor/thor/task.rb:22:in `run'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/vendor/thor.rb:246:in `dispatch'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/vendor/thor/base.rb:389:in `start'
from /usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.7/bin/bundle:13
from /usr/ruby1.8.7/bin/bundle:19:in `load'
from /usr/ruby1.8.7/bin/bundle:19
FAILED: http://devcenter.heroku.com/articles/bundler
Run Code Online (Sandbox Code Playgroud)
!Heroku推被拒绝,未能通过Bundler安装宝石
我在RVM之前和之后安装了我的本地机器上的大量宝石,所以我决定将它们全部擦除并重新安装.一切似乎都没问题,除了捆绑:
gem list
.....
bundler (1.1.3, 1.0.22)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么1.0.22仍然存在,我无法弄清楚如何摆脱它!
$ gem cleanup
Cleaning up installed gems...
Attempting to uninstall bundler-1.0.22
Unable to uninstall bundler-1.0.22:
Gem::InstallError: gem "bundler" is not installed
Clean Up Complete
$ gem uninstall bundler-1.0.22
INFO: gem "bundler-1.0.22" is not installed
Run Code Online (Sandbox Code Playgroud)
更新1 安德鲁要求的路径信息
/Users/brandon/.rvm/gems/ruby-1.9.3-p125-perf@global/gems/bundler-1.0.22/
Run Code Online (Sandbox Code Playgroud) 我对bundler gem有一些问题.
当我运行"gem list"时,我可以看到已经安装了bundler."bundler(1.1.3,1.0.21)".
但是,当我尝试运行命令"bundle"时,我收到以下消息:
sh.exe": /c/Program Files (x86)/ruby-1.9.3/bin/bundle: "c:/Program: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我认为这是一些路径错误,但无论我多少谷歌,我都无法找到解决问题的方法.
有人有任何提示吗?
这是我的路径:
C:\Program Files (x86)\AMD APP\bin\x86_64;
C:\Program Files (x86)\AMD APP\bin\x86;
C:\Program Files\Common Files\Microsoft Shared\Windows Live;
C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;
C:\Windows\system32\gs\gs8.71\bin;
C:\Program Files (x86)\Windows Live\Shared;
C:\DevKit\bin;
C:\Program Files (x86)\Common Files\Autodesk Shared\;
C:\Program Files\Common Files\Autodesk Shared\;
C:\Program Files\TortoiseSVN\bin;
C:\Program Files (x86)\Autodesk\Backburner\;
F:\Program Files (x86)\Mozart\bin;
C:\Program Files (x86)\ruby-1.9.3\lib\ruby\gems\1.9.1\gems\rails-3.0.9\bin;
C:\Ruby192\lib\ruby\gems\1.9.1\gems\rake-0.9.2\bin;
W:\wamp\bin\mysql\mysql5.5.16\lib;
F:\Program …Run Code Online (Sandbox Code Playgroud) 运行此命令后,我经常收到此错误....
bundle clean --force
Run Code Online (Sandbox Code Playgroud)
在我的rails项目..
我怎样才能解决这个问题?
我正在使用capistrano并收到此错误消息:
Please install the pg adapter: `gem install activerecord-pg-adapter` (cannot load such file -- active_record/connection_adapters/pg_adapter)
Run Code Online (Sandbox Code Playgroud)
我从我的Gemfile中删除了宝石'pg' bundle install.我在Gemfile.lock中没有看到pg gem.我还将生产数据库更改为sqlite3适配器.为什么Rails 3.2/Capistrano/Bundler要求这个?我没有使用它,而不是在Gemfile.lock中,我该如何解决它?我正在服务器上使用ubuntu 12.04.
thx提前
此外,当我运行它告诉我运行的东西时,我得到:
deploy@oahu:~$ gem install activerecord-pg-adapter
ERROR: Could not find a valid gem 'activerecord-pg-adapter' (>= 0) in any repository
^CERROR: Interrupted
deploy@oahu:~$ \
Run Code Online (Sandbox Code Playgroud)
**编辑1**
从应用程序的根源
Fri Mar 22$ grep -ri 'pg-adapter' *
Fri Mar 22$
Run Code Online (Sandbox Code Playgroud)
database.yml的
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
# Warning: The database defined as "test" will be erased and
# re-generated …Run Code Online (Sandbox Code Playgroud) 我在Rails 3.2上有一个项目.我也使用haml作为我的模板引擎,但我决定使用slim而不是haml.所以我用slim重写了一些观点.但当我把这个更改推送到服务器时,我在生产中遇到了奇怪的错误.
该错误仅出现在使用slim作为模板引擎的页面上.在我的开发机器页面打开很棒.为了设置服务器,我使用了Rayan Byte的截屏视频
我该如何解决这个问题?
错误:
Started GET "/" for 128.69.76.116 at 2013-04-12 11:19:31 +0000
Started GET "/ru/articles" for 128.69.76.116 at 2013-04-12 11:19:31 +0000
Processing by ArticlesController#index as HTML
Parameters: {"locale"=>"ru"}
Completed 500 Internal Server Error in 180ms
ActionView::MissingTemplate (Missing template articles/index, application/index with {:locale=>[:ru], :formats=>[:html], :handlers=>[:erb, :builder, :haml]}. Searched in:
* "/home/deployer/apps/Chirch_app/releases/20130412101936/app/views"
* "/home/deployer/apps/Chirch_app/shared/bundle/ruby/1.9.1/gems/gmaps4rails-1.5.6/app/views"
* "/home/deployer/apps/Chirch_app/shared/bundle/ruby/1.9.1/gems/kaminari-0.14.0/app/views"
* "/home/deployer/apps/Chirch_app/shared/bundle/ruby/1.9.1/gems/devise-2.1.2/app/views"
):
actionpack (3.2.8) lib/action_view/path_set.rb:58:in `find'
actionpack (3.2.8) lib/action_view/lookup_context.rb:109:in `find'
actionpack (3.2.8) lib/action_view/renderer/abstract_renderer.rb:3:in `find_template'
actionpack (3.2.8) lib/action_view/renderer/template_renderer.rb:34:in `determine_template'
actionpack (3.2.8) …Run Code Online (Sandbox Code Playgroud) 我注意到这两个工作:
gem install bundle
Run Code Online (Sandbox Code Playgroud)
和
gem install bundler
Run Code Online (Sandbox Code Playgroud)
有什么不同?
bundle只是一个空的宝石与bundler依赖?
我安装了Rails,将Ruby版本从2.3.3更新到了2.5.3。我以前使用的是Debian Ruby软件包中的2.3.3,但是从RVM中安装了2.5.3。我修改了Gemfile以便使用ruby '2.5.3'和运行bundle install。Rails现在应该按原样使用2.5.3,但是当我CD到目录时,我收到一条消息:
Required ruby-2.3.3 is not installed.
To install do: 'rvm install "ruby-2.3.3"'
我找不到它在哪里。grep -r "2.3.3" *在我的Rails项目根目录中运行不会返回任何内容。我知道这是该项目的特定内容,因为我已将其克隆到另一台服务器,并且消息仍然存在。是什么在报告此问题,如何告诉我2.5.3是正确的Ruby版本?