2013-08-30 75 views
1

我是编程和stackoverflow.com的新手。我一直在跟随ruby.railstutorial.org,当我解决第3.5节中的高级练习时(使用Postgresql中的pg gems替换sqlite3),感觉非常好。Ruby on Rails教程练习3.5

我改变了我的Gemfile来自:

source 'https://rubygems.org' 
ruby '1.9.3' 
#ruby-gemset=railstutorial_rails_4_0 

gem 'rails', '4.0.0' 

group :development, :test do 
    gem 'sqlite3', '1.3.7' 
    gem 'rspec-rails', '2.13.1' 
end 

group :test do 
    gem 'selenium-webdriver', '2.0.0' 
    gem 'capybara', '2.1.0' 
end 

gem 'sass-rails', '4.0.0' 
gem 'uglifier', '2.1.1' 
gem 'coffee-rails', '4.0.0' 
gem 'jquery-rails', '2.2.1' 
gem 'turbolinks', '1.1.1' 
gem 'jbuilder', '1.0.2' 

group :doc do 
    gem 'sdoc', '0.3.20', require: false 
end 

group :production do 
    gem 'pg', '0.15.1' 
    gem 'rails_12factor', '0.0.2' 
end 

source 'https://rubygems.org' 
ruby '1.9.3' 
#ruby-gemset=railstutorial_rails_4_0 

gem 'rails', '4.0.0' 
gem 'pg', '0.15.1' 

group :development, :test do 
    gem 'rspec-rails', '2.13.1' 
end 

group :test do 
    gem 'selenium-webdriver', '2.0.0' 
    gem 'capybara', '2.1.0' 
end 

gem 'sass-rails', '4.0.0' 
gem 'uglifier', '2.1.1' 
gem 'coffee-rails', '4.0.0' 
gem 'jquery-rails', '2.2.1' 
gem 'turbolinks', '1.1.1' 
gem 'jbuilder', '1.0.2' 

group :doc do 
    gem 'sdoc', '0.3.20', require: false 
end 

group :production do 
    gem 'rails_12factor', '0.0.2' 
end 

我也改变了我的database.yml文件:

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: sqlite3 
    database: db/production.sqlite3 
    pool: 5 
    timeout: 5000 

包括密码/端口与PG postgresql不是sqlite3。 我安装的pgAdmin III和PostgreSQL 9.2 我捆绑更新并安装了一些PG宝石和跑我:

bundle exec rspec spec/requests/static_pages_spec.rb 

其停止工作,即使它所有的这些改变之前正确工作。 这些是错误消息:

C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver/common/zipper。 /RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.0: - RB:1:1:在 '要求' 选自C拉链/拉链(LoadError) 不能加载这样的文件。 0/LIB /硒/ webdriver的/普通/ zipper.rb:1:在 ''

和约30更类似于那些。我试着在这里搜索一些类似的问题,但找不到任何东西,意识到我为了“高级”而头脑发热,试图恢复所有的变化。

我改变了我的Gemfile回原来和我的database.yml文件回来,并试图再次运行,但我仍然得到确切的同样的信息。

任何意见将是非常有益的。我对此很新。

+2

你运行'改变你的Gemfile后bundle'? –

+0

是的,我运行了软件包更新和软件包安装 – Dronny

+0

'软件包更新'将更新Gemfile中的* everything *,你可能不想养成每次都这样做的习惯。看起来像捆绑商的问题,因为宝石找不到其他宝石... –

回答

2

这是不安全的运行包更新,因为此命令更新所有你的宝石和宝石的新版本可能会破坏您的应用程序,这是什么情况,当你在做bundle update,我建议你this article更了解包更新命令。

我想你使用git?如果是的话那么回到之前的提交你已经在做什么?

git reset --hard commit_name 

所以这样的一个例子是:

git reset --hard f460cb...... 

提交名称可以使用发现命令:

git log 

另一种解决方案,我认为更方便是恢复你的旧的Gemfile.lock(Gemfile.lock是包含你的旧宝石版本和每个宝石的依赖关系的文件)。你可以找到如何做到这一点这里How do you rollback to a previous Gemfile.Lock

+0

非常感谢。解决了我的问题 – Dronny

+0

@ user2733938如果这有助于您解决问题,请点击此答案左侧的验证图标 – medBo

+0

我遇到了与TOS相同的问题:大胆地将我的应用移至postgresql数据库,然后彻底搞砸了所有内容并必须弄清楚如何解决它。如果只有教程提醒我们首先要“分叉回购”,那么就像一个艰难的纵横字谜一样,在本书的后面提供解决方案。 –