根据ruby.railstutorial.org升级到rails 4后无法加载railtie

操作系统是Ubuntu 12.04,64位

rails的新特性。对Ruby来说比较新。遵循ruby.railstutorial.org教程第3章

本教程已更新为使用ruby 2.0.0和Rails 4.0.0.rc1。以前,gemfile指定的是Rails 3.2.13,而不是Ruby版本。在转移到教程中最新的GEM文件ruby 2.0.0和Rails 4.0.0.rc1之后,我在运行Rails命令时遇到以下错误。这里的示例是rails服务器

[email protected]:~/bin/railslearn/sample\u应用程序$rails服务器
/home/paul/bin/railslearn/sample\u app/config/application.rb:7:在'require'中:无法加载这样的文件--活动的\u资源/railtie(LoadError)
from/home/paul/bin/railslearn/sample\u app/config/application.rb:7:in`<顶部(必需)>'
from/home/paul/.rvm/gems/[email protected]_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in'require'
from/home/paul/.rvm/gems/[email protected]_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in`block in<顶部(必需)>'
from/home/paul/.rvm/gems/[email protected]_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in'tap'
from/home/paul/.rvm/gems/[email protected]_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in`<顶部(必需)>'
来自脚本/rails:6:in'require'
从脚本/rails:6:in`<主>'

我确实从Rails获得了一些想法:无法找到railties,如下所述,但尚未找到修复方法

以下是详细情况

昨天(在我的浏览器中)第三章的GEM文件如下。一切都很顺利

$cat文件
来源'https://rubygems.org'
gem“轨道”,“3.2.13”
gem“引导式sass”,“2.1”
宝石“bcrypt ruby”,“3.0.1”
宝石“赝品”,“1.0.1”
gem“将分页”,“3.0.3”
gem“bootstrap-will_paginate”,“0.0.6”
gem'jqueryrails','2.0.2'
小组:开发,:测试
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”
#宝石'spork','0.9.2'
终止
#仅用于资产的宝石,不需要
#默认情况下,在生产环境中。
集团:资产做什么
gem“sass轨道”,“3.2.5”
gem“咖啡轨”,“3.2.2”
宝石'uglifier','1.2.3'
终止
组:测试do
宝石“水豚”,“1.1.2”
gem“工厂女孩轨道”,“4.1.0”
gem'cumber rails'、'1.2.1',:require=>错误的
gem“数据库清理器”、“0.7.0”
#创业板“launchy”,“2.1.0”
#gem'rb fsevent','0.9.1',:require=>错误的
#宝石“咆哮”,“1.0.3”
终止
小组:生产部
gem‘pg’、‘0.12.2’
终止

今天上午,教程中的GEM文件使用ruby 2.0.0和rails 4.0.0.rc1。我想让这个设置正常工作,这样我就不会与更新的教程发生冲突。新文件如下所示

$cat文件
来源'https://rubygems.org'
ruby“2.0.0”
gem'rails','4.0.0.rc1'
小组:开发,:测试
gem'sqlite3','1.3.7'
gem“rspec导轨”,“2.13.1”
终止
组:测试do
gem“selenium webdriver”、“2.0.0”
宝石“水豚”,“2.1.0”
终止
gem'sass-rails','4.0.0.rc1'
宝石“丑八怪”,“2.1.1”
gem“咖啡轨”,“4.0.0”
gem'jqueryrails','2.2.1'
gem“涡轮链接”,“1.1.1”
gem'jbuilder','1.0.2'
小组:doc do
gem“sdoc”,“0.3.20”,要求:false
终止
小组:生产部
gem‘pg’、‘0.15.1’
终止

首先,我将Gemfile中的ruby版本更改为ruby’1.9.2’,因为这正是我正在运行的,我认为我在bundle更新时出错了。我没有做笔记

然后在GEM文件中将ruby版本更改回“2.0.0”,并:

$rvm安装2.0.0
$rvm use 2.0.0--默认值
$bundle更新
$bundle安装

现在我得到了rails命令的无法加载railtie错误

来自Rails:找不到railties,我尝试了以下方法

$gem卸载railties
选择要卸载的gem:
1.铁路-4.0.0.rc1
2.铁路-3.2.13
3.所有版本
&燃气轮机;2.
您已请求卸载gem:
铁路-3.2.13
钢轨-3.2.13取决于钢轨(=3.2.13)
如果删除此gem,将无法满足这些依赖关系。
Y#卸载railties-3.2.13

还是会出错吗

$gem uninstall rails#卸载rails-3.2.13
$gem uninstall railties#也可卸载railties-4.0.0.rc1
$rvm重新安装2.0.0
$rvm 2.0.0--默认值
$bundle update#使用带有ruby 2和rails 4的GEM文件
$bundle安装
$gem列表|格雷普铁路
咖啡架(4.0.0)
jquery rails(2.2.1)
轨道(4.0.0.rc1)
栏杆(4.0.0.rc1)
rspec钢轨(2.13.1)
sass导轨(4.0.0.rc1)
链轮轨道(2.0.0.rc4)

还是会出错吗

回顾第一章教程中的原始设置(现在针对ruby 2和rails 4进行了更新)

$rvm使用2.0。[email protected]_rails_4_0--创建--默认值
$gem更新--系统2.0.0
$gem安装rails--版本4.0.0.rc1--没有ri--没有rdoc
$bundle update#使用Gemfile和ruby 2、rails 4
$bundle安装

还是会出错吗

ug

有什么想法吗

ActiveResource是Rails 2.x中添加的一个API,它支持XML(以及后来的JSON)API,以便Rails站点可以相互“对话”。当RESTful API的思想进入框架时,这是一个非常热门的话题。随着时间的推移,它变得越来越新奇,而且很少维护,因此它在Rails4.x中从核心中被拉出

在Rails4.x上有两个选项。如果您不打算使用ActiveResource(如果您是Rails新手并且正在学习教程,我假设是这样),那么您可以简单地删除或注释将其拉入框架的railtie。打开’config/application.rb’并注释掉第七行

需要文件。展开路径('../boot',文件)
#选择您想要的框架:
需要“活动记录/轨道连接”
需要“控制器/轨道连接的操作”
要求采取“行动”\u邮递员/railtie
#需要“活动资源/railtie”<-把这行注释掉

如果您想使用ActiveResource,那么只需将其添加到项目的GEM文件中即可。以前它被rails gem作为依赖项包含;现在,如果您想使用它,就必须显式地添加它

发表评论