Pau*_*l S 43 rubygems ruby-on-rails railstutorial.org gem-bundler railtie
操作系统是Ubuntu 12.04,64位.
新的铁路.相对较新的Ruby.遵循ruby.railstutorial.org教程,第3章.
本教程已更新为使用ruby 2.0.0和Rails 4.0.0.rc1.以前gemfile是指定Rails 3.2.13而不是指定Ruby版本.在转到教程中的最新Gemfile,ruby 2.0.0和Rails 4.0.0.rc1之后,运行rails命令时出现以下错误.这里的示例是rails服务器
user@machine:~/bin/railslearn/sample_app$ rails server
/home/paul/bin/railslearn/sample_app/config/application.rb:7:in `require': cannot load such file -- active_resource/railtie (LoadError)
from /home/paul/bin/railslearn/sample_app/config/application.rb:7:in `<top (required)>'
from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in `require'
from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in `block in <top (required)>'
from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in `tap'
from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我确实从Rails得到了一些想法:找不到下面列出的铁路,但还没有找到解决办法.
这是细节.
昨天(在我的浏览器中)第3章的Gemfile如下所示.一切都很好.
$ cat Gemfile
source 'https://rubygems.org'
gem 'rails', '3.2.13'
gem 'bootstrap-sass', '2.1'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'jquery-rails', '2.0.2'
group :development, :test do
gem 'sqlite3', '1.3.5'
gem 'rspec-rails', '2.11.0'
# gem 'guard-rspec', '1.2.1'
# gem 'guard-spork', '1.2.0'
# gem 'childprocess', '0.3.6'
# gem 'spork', '0.9.2'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '3.2.5'
gem 'coffee-rails', '3.2.2'
gem 'uglifier', '1.2.3'
end
group :test do
gem 'capybara', '1.1.2'
gem 'factory_girl_rails', '4.1.0'
gem 'cucumber-rails', '1.2.1', :require => false
gem 'database_cleaner', '0.7.0'
# gem 'launchy', '2.1.0'
# gem 'rb-fsevent', '0.9.1', :require => false
# gem 'growl', '1.0.3'
end
group :production do
gem 'pg', '0.12.2'
end
Run Code Online (Sandbox Code Playgroud)
今天早上,教程中的Gemfiles使用了ruby 2.0.0和rails 4.0.0.rc1.我想让这个设置工作,所以我没有与更新的教程冲突.新的Gemfile如下.
$ cat Gemfile
source 'https://rubygems.org'
ruby '2.0.0'
gem 'rails', '4.0.0.rc1'
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.rc1'
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'
end
Run Code Online (Sandbox Code Playgroud)
首先,我将Gemfile中的ruby版本更改为ruby'1.9.2',因为这就是我正在运行的内容,并认为我在捆绑更新时遇到了错误.我没记笔记.
然后在Gemfile中将ruby版本更改回'2.0.0'并且:
$ rvm install 2.0.0
$ rvm use 2.0.0 --default
$ bundle update
$ bundle install
Run Code Online (Sandbox Code Playgroud)
现在我得到了无法使用rails命令加载railtie错误.
从Rails:找不到铁路,我尝试了以下
$ gem uninstall railties
Select gem to uninstall:
1. railties-4.0.0.rc1
2. railties-3.2.13
3. All versions
> 2
You have requested to uninstall the gem:
railties-3.2.13
rails-3.2.13 depends on railties (= 3.2.13)
If you remove this gem, these dependencies will not be met.
Y # uninstall railties-3.2.13
Run Code Online (Sandbox Code Playgroud)
仍然得到错误
$ gem uninstall rails # to uninstall rails-3.2.13
$ gem uninstall railties # to also uninstall railties-4.0.0.rc1
$ rvm reinstall 2.0.0
$ rvm 2.0.0 --default
$ bundle update # using the Gemfile with ruby 2, rails 4
$ bundle install
$ gem list | grep rail
coffee-rails (4.0.0)
jquery-rails (2.2.1)
rails (4.0.0.rc1)
railties (4.0.0.rc1)
rspec-rails (2.13.1)
sass-rails (4.0.0.rc1)
sprockets-rails (2.0.0.rc4)
Run Code Online (Sandbox Code Playgroud)
仍然得到错误
回顾第一章教程中的原始设置(现在更新为ruby 2,rails 4.)
$ rvm use 2.0.0@railstutorial_rails_4_0 --create --default
$ gem update --system 2.0.0
$ gem install rails --version 4.0.0.rc1 --no-ri --no-rdoc
$ bundle update # using Gemfile with ruby 2, rails 4
$ bundle install
Run Code Online (Sandbox Code Playgroud)
仍然得到错误
UG!
有任何想法吗?
And*_*dyV 69
ActiveResource是Rails 2.x中添加的API,用于支持XML(以及后来的JSON)API,以便Rails站点可以相互"交谈".当RESTful API的概念进入框架时,这是一个非常热门的话题.随着时间的推移,它变得更加新颖,并且很少被维护,所以它在Rails 4.x中从核心中拉出来.
Rails 4.x有两个选项.如果您不打算使用ActiveResource(我认为如果您是Rails的新手并且正在编写教程的情况就是这种情况)那么您可以简单地删除或注释掉将其拉入框架的铁路.打开'config/application.rb'并注释掉第七行.
require File.expand_path('../boot', __FILE__)
# Pick the frameworks you want:
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
# require "active_resource/railtie" <--- comment out this line
Run Code Online (Sandbox Code Playgroud)
如果您想使用ActiveResource,那么只需将其添加到项目的Gemfile中即可.以前它被rails gem作为依赖包含在内; 现在,如果要使用它,您必须明确添加它.
| 归档时间: |
|
| 查看次数: |
18673 次 |
| 最近记录: |