- 浏览: 168664 次
- 性别:
- 来自: 广州
最新评论
-
dongxuef:
正奇怪呢,原来你也没深究.源码中_params被default ...
在Rails的controller中访问params的一个小细节 -
sunsonavaj:
Rails 3 下自定义错误信息显示页面 -
Hooopo:
Thx!
ubuntu下让netbeans的字体变得好看些 -
ybffnst:
paperclip 对错误消息的处理是对字符串进行处理的,不支 ...
如何自定义处理ActiveRecord中的errors信息 -
wozhidao:
这个方法有个很大的bug,远程图片的时候是取不到扩展名的,上传 ...
paperclip定制文件名
安装ruby
- 首先不再使用ubuntu的apt-get安装ruby,自己编译安装,这样虽然不能使用ubuntu系统apt-get的升级功能对ruby进行升级,但胜在自由度最高,想怎么折腾就怎么折腾.
- 到 http://www.ruby-lang.org/zh_CN/downloads/ 下载ruby 1.9.1的源代码.
-
#解压文件 tar vfxz ruby-1.9.1-p0.tar.gz #进入解压后的文件夹 cd ruby-1.9.1-p0/ #编译源码,在编译之前,应该先对/usr/local/ruby-1.9.1文件夹设置权限. ./configure --prefix=/usr/local/ruby-1.9.1 #大名鼎鼎的 make 和 install make && make install #设置PATH路径,把自己安装的ruby放在系统PATH前面,避免调用操作系统自带的ruby export PATH=/usr/local/ruby-1.9.1/bin:$PATH #我在 ~/.profile 文件中增加了这样的代码: if [ -d "/usr/local/ruby-1.9.1/bin" ] ; then PATH="/usr/local/ruby-1.9.1/bin:$PATH" fi 然后 注销 再登陆一次. #如无意外 ruby -v #ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux] #ruby 1.9.1安装成功了.
- 自 己编译安装的好处就是,当下次ruby 1.9.2升级的时候,如果你不想升级,你完成可以无视.如果你想尝鲜,你可以下载ruby 1.9.2,然后重复一下上面的功能,不同的只是把它安装到ruby-1.9.2文件.再把ruby-1.9.2/bin路径设置到PATH前面,完全是 无痛升级,并且可以自由切换;如果你想删除这个版本,只要 rm -Rf ruby-1.9.1,绝不会留下任何疤痕,非常干净,爽就一个字.
- 升级到ruby 1.9.1后,不用再另外单独安装 rubygems 了,在ruby 1.9.1下,rubygems已经是默认的ruby包管理程序,查看一下ruby-1.9.1/bin,你会发现gem已经静静地在那里了.
-
#执行 gem -v #1.3.1,gem的版本 #再执行 gem list #你会发现什么都没有,当然啦,这个新的ruby,你还没有安装任何gem包呢.
安装Rails
- gem install rails -y #从远程安装Rails和所有的依赖.正宗的一键安装,方便快捷.将会安装如下的gem:
Successfully installed activesupport-2.3.2
Successfully installed activerecord-2.3.2
Successfully installed actionpack-2.3.2
Successfully installed actionmailer-2.3.2
Successfully installed activeresource-2.3.2
Successfully installed rails-2.3.2
6 gems installed
Installing ri documentation for activesupport-2.3.2...
Installing ri documentation for activerecord-2.3.2...
Installing ri documentation for actionpack-2.3.2...
Installing ri documentation for actionmailer-2.3.2...
Installing ri documentation for activeresource-2.3.2...
Successfully installed activerecord-2.3.2
Successfully installed actionpack-2.3.2
Successfully installed actionmailer-2.3.2
Successfully installed activeresource-2.3.2
Successfully installed rails-2.3.2
6 gems installed
Installing ri documentation for activesupport-2.3.2...
Installing ri documentation for activerecord-2.3.2...
Installing ri documentation for actionpack-2.3.2...
Installing ri documentation for actionmailer-2.3.2...
Installing ri documentation for activeresource-2.3.2...
- 再次执行 gem list,可以看到如下信息:
*** LOCAL GEMS ***
actionmailer (2.3.2)
actionpack (2.3.2)
activerecord (2.3.2)
activeresource (2.3.2)
activesupport (2.3.2)
rails (2.3.2)
rake (0.8.4)
actionmailer (2.3.2)
actionpack (2.3.2)
activerecord (2.3.2)
activeresource (2.3.2)
activesupport (2.3.2)
rails (2.3.2)
rake (0.8.4)
- Rails 2.3.2升级成功了.
下面看看怎么把已有项目升级到当前的Rails版本(2.3.2)
- 我是使用Nebeans 6.5进行开发的,顺便把Netbeans 升级到6.5.1版本.
- 在Netbeans选中你的项目,右键,选择 Properties ,把 Ruby Platform改为 Ruby 1.9.1 p0就可以了.(如果没有,请增加).
- 直接使用 rake rails:update 任务进行升级,结果却令我失望了,加上 --trace 选项可以看到,在新版本下boot.rb文件会报错,错误信息如下:
config/boot.rb:86:in `load_rubygems' config/boot.rb:52:in `load_initializer' config/boot.rb:38:in `run' config/boot.rb:11:in `boot!' config/boot.rb:109:in `<top (required)>' Rakefile:4:in `require' Rakefile:4:in `<top (required)>'
- 我也不想去查错误,于是新建了一个Rails项目(建一个空目录,进行目录下,然后 rails .),把新项目的 boot.rb 文件拷贝过来,然后执行 rake rails:update 成功了!
- 有一个特别的地方,我在一个rb文件的一个正则表达式中使用了全角的逗号,居然不能启动服务器,报如下错误: invalid multibyte char (US-ASCII) (SyntaxError).先把这个去掉,保证能启动再说.
- 还 是不能启动,提示:no such file to load -- openssl (RuntimeError) . 其实这个提示误人不少,一般都以为没有安装openssl的ruby gem,如果安装的是系统自带版的ruby的话,要执行的是: sudo apt-get install libopenssl-ruby1.9
- 由于我是自己编译的ruby版本,所以要这样做:
1. sudo apt-get install openssl libssl-dev 2. cd ruby_source_dir(就是编译ruby的目录)/ext/openssl 3. ruby extconfig.rb 4. make && make install
- 还是不能升级到ruby 1.9.1,因为我使用中的一个重要的gem:ferret 现在不支持ruby 1.9.1.所以只好继续使用 ruby 1.8.7,但是rails升级到2.3.2.
在ubuntu 下升级 rails.
- 由于rails 2.3.2要求rubygem的版本是1.3.1,在我的系统中的gem的版本是1.2.0,必须得升级.由于是使用ubuntu 源安装的gem,因此不能使用 gem update --system
- 到 http://rubyforge.org 下载rubygems 1.3.1版本.
- 解压下,进行解压目录,执行一下 sudo ruby setup.rb , 再执行一下 gem -v,发现已经升级到了1.3.1版本.
- gem update rails 升级就完成了.
- gem升级后,gem list为空,要重新安装需要的gem包.
项目升级的一个问题:
- 自己对ActiveRecord的一个open class增强(opar.rb文件中)
- 未 升级前放在 config/envirment.rb 文件的 Rails::Initializer.run do |config| require File.join(File.dirname(__FILE__),'..', 'lib','extend','opar') #加载我的增强代码 end 块当中,升级后启动出错:
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:416:in `initialize_database': undefined method `configurations=' for ActiveRecord::Base:Class (NoMethodError) from /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:141:in `process' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:113:in `send' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:113:in `run' from /home/yanghuan/dev/my_project/config/environment.rb:13 from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /home/yanghuan/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require' from /home/yanghuan/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:521:in `new_constants_in' from /home/yanghuan/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require' from /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:84 from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from script/server:3
- 修改后:在 config/envirment.rb 文件的 Rails::Initializer.run do |config| end require File.join(File.dirname(__FILE__),'..', 'lib','extend','opar') #加载我的增强代码.
- 出现这个错误的原因是:在opar.rb中修改了ActiveRecord::Base类的定义,而在Rails::Initializer.run do |config| ... end执行完成之前,Rails还没有加载ActiveRecord,故而出错.
- 代码放在block外面了.这下还启动了.
- 至此升级顺利完成.
评论
11 楼
lemonweirui
2010-03-18
为啥子我的fedora在编译ruby1.9.1p378时,一直报错(关于ssl的)
10 楼
vb2005xu
2009-10-08
http://vb2005xu.iteye.com/blog/482832
9 楼
jerry
2009-09-08
下一站,火星 写道
jerry 写道
说了半天,这是升级没成功呀。
呵呵,早就升级到2.3.2了。
2.3.3下面的postgre-pr驱动有bug,不建议使用
我是说你的Ruby 1.9.1升级不成功
昨天我在windows下升级ruby1.9.1, Rails 2.3.4发现问题一堆,解决了中文问题后,当打开网页时,直接报ruby的解释器崩溃了。
8 楼
下一站,火星
2009-09-08
火星叔叔马丁 写道
下一站,火星 写道
jerry 写道
说了半天,这是升级没成功呀。
呵呵,早就升级到2.3.2了。
2.3.3下面的postgre-pr驱动有bug,不建议使用
你们项目里也开始用postgrel了?
是的,postgre很好用
http://awesomeful.net/posts/45-postgresql-rails-and-why-you-should-care
7 楼
下一站,火星
2009-09-07
jerry 写道
说了半天,这是升级没成功呀。
呵呵,早就升级到2.3.2了。
2.3.3下面的postgre-pr驱动有bug,不建议使用
6 楼
jerry
2009-09-07
说了半天,这是升级没成功呀。
5 楼
phoenix520
2009-03-25
现在困扰我的就是MySQL和Ferret这两个Gem,貌似这两个gem都已经年久失修,不知道是不是已经不会再发布支持1.9.1的版本了。
4 楼
花花公子
2009-03-22
QuakeWang 写道
-KU之前试过,rails带的tmail下utils.rb还是会报一个invalid multibyte char,因为这个文件里面有\x00-\x1f\x7f-\xff这样格式的正则表达式,还没有仔细看其他文件会不会有类似问题。
Rails 2.3.1就有这个问题,以为2.3.2把这个问题解决了才号称ruby1.9兼容的呢。
Quake你不怕麻烦 gem install tmail 更新到tmail 1.2.3.1看看有没有解决这个问题。
3 楼
QuakeWang
2009-03-22
-KU之前试过,rails带的tmail下utils.rb还是会报一个invalid multibyte char,因为这个文件里面有\x00-\x1f\x7f-\xff这样格式的正则表达式,还没有仔细看其他文件会不会有类似问题。
2 楼
花花公子
2009-03-22
QuakeWang 写道
invalid multibyte char 可以通过在文件头添加magic enconding comment解决,
不过如果文件很多的话,都这样处理会非常郁闷,而且感觉也太傻了。
ruby 1.9对于multibyte的编码支持非常诡异,还没有找到一个合适的方法。
不过如果文件很多的话,都这样处理会非常郁闷,而且感觉也太傻了。
ruby 1.9对于multibyte的编码支持非常诡异,还没有找到一个合适的方法。
ruby1.9 是 ruby -KU ***.rb 强制用unicode编码ruby文件
所以可以试试 ruby -KU script/server 启动服务器,相应的环境变量 RUBYOPT="-w -KU"。
1 楼
QuakeWang
2009-03-22
invalid multibyte char 可以通过在文件头添加magic enconding comment解决,
不过如果文件很多的话,都这样处理会非常郁闷,而且感觉也太傻了。
ruby 1.9对于multibyte的编码支持非常诡异,还没有找到一个合适的方法。
不过如果文件很多的话,都这样处理会非常郁闷,而且感觉也太傻了。
ruby 1.9对于multibyte的编码支持非常诡异,还没有找到一个合适的方法。
发表评论
-
Rails 2.3.12下遇到的named route的诡异问题
2011-08-14 21:18 1671周五的时候把网站升级到Rails 2.3.12,本来在本地测试 ... -
ActionMailer的一些配置
2011-08-14 20:59 1672一般情况下,如果你使用gmail的话,都是这样配置的: A ... -
如何自定义处理ActiveRecord中的errors信息
2011-07-26 23:33 2903今天写代码的时候,客服MM向我反馈了一个问题,这个问题本身是很 ... -
Rails 3 下自定义错误信息显示页面
2010-07-08 15:21 3774大家都知道想在Rails下自定义错误显示的页面是修改 resc ... -
paperclip定制文件名
2010-07-02 14:25 3383在新项目中使用了paperclip这个文件上传插件,一切都很满 ... -
Sinatra:一个可以作为Rails有益补充的框架. 简洁而不简单
2010-04-04 15:08 7174一个基于Sinatra的小程序 前些天有一个需求,需要写一个 ... -
require特定版本的gem
2010-03-31 21:07 2586今天有一个需求要单独地使用ActiveRecord,但是我的机 ... -
从Rails 2.3.5 升级到 Rails 3.0 beta
2010-03-27 22:12 2172因为有一个新的项目打算使用Rails 3.0 beta,所以先 ... -
命名时请留意Rails下的关键字
2010-01-22 17:36 2073前些天我在做一个支付集成的接口,对方返回的结果串里面有一个 e ... -
rails下自定义出错页面
2010-01-22 17:17 2365rails出错的时候,一般都是跳转到错误跟踪的页面下,这样在开 ... -
rails下修改http头(http header)
2010-01-22 17:08 5204其实就是修改response中一个叫做headers的Hash ... -
在Rails的controller中访问params的一个小细节
2009-12-02 22:36 7305大家都知道controller中的params其实是一个Has ... -
Rails开发工具之Vim
2009-10-19 16:06 12321学习和开发Ruby & Rails ... -
Thinking Sphinx + Coreseek + rmmseg的安装与使用
2009-10-06 23:48 3824要在Rails上使用全文检索,选择一直不多,以前我一直是使用F ... -
Migrations流水帐
2009-07-11 16:02 1301对于Rails的迁移功能Migrations,一直都只是看一下 ... -
重新安装ruby遇到的问题
2009-06-13 13:14 1329昨天重装了操作系统,要重新安装ruby环境. 因为以前 ... -
JRuby使用经验
2009-05-10 17:06 1986首先我是一个Java程序员 ... -
使用ri查看Rails的API
2009-03-25 23:31 4489我一直都比较习惯直接到 http://www.ruby-doc ... -
今晚用上了ruby的动态方法调用,open class和mixin三大神器
2009-01-12 00:43 2233今晚人品爆发,一举用上了ruby的动态方法调用,open cl ... -
让rails中多态关联的方法名更加人性化
2008-12-02 22:55 2436rails中的多态关联功能,很好很强大。 但是多态关联的方法 ...
相关推荐
.9.1是ruby 1.9系列以来的第一个production ready的版本,这也标志着Ruby社区从此迈向了1.9的时代。 ruby 1.9是ruby发展历史上的一个里程碑版本: 1、ruby 1.9首次引入字节...rails的下一个版本Rails 2.3将支持ruby ...
Ubuntu用户通常会依赖于包管理工具`apt-get`来安装Ruby,这种方式虽然简单便捷,但在某些情况下可能无法满足定制化的需求。本文将详细介绍如何通过手动编译的方式安装Ruby,并提供一种灵活的升级策略。 #### 手动...
4. **库和框架**:介绍 Ruby 1.9.1 集成的标准库和常用的第三方库,如ActiveRecord、Rails框架等。 5. **性能优化**:给出实践建议,如何利用新特性编写高效的代码。 6. **错误处理和调试**:讨论新错误系统,提供...
因此,这个特别的源码包是针对Ruby 1.9.1进行过适配和修改的,确保在该版本下能够顺利安装和运行。 在源码包`ruby-fcgi-0.8.7`中,你可以期待找到以下关键文件和目录: 1. `ext/`: 这个目录包含了Ruby-FCGI的C语言...
标题“【工作点滴】用VS 2010 编译 Ruby 1.9.1”涉及的是在Visual Studio 2010环境下编译Ruby编程语言的1.9.1版本。这是一个关于软件开发过程中的实践操作,尤其是针对Windows平台上的C/C++开发。在Windows上编译...
1.chmod + x pcl.sh#增加可执行权限 2../pcl.sh#安装在/usr/local/pcl/pcl-1.9.1 3.sudo gedit .bashrc 4.添加export PCL_DIR=/usr/local/pcl/pcl-1.9.1
Ruby是一种面向对象的脚本语言,由日本人松本行弘(Yukihiro ...Ruby与Rails框架的结合,使得它在Web开发领域具有很高的知名度和实用性。同时,由于其开源和跨平台的特性,Ruby也成为了许多开发者首选的编程语言之一。
这个版本(p0)意味着它是1.9.1主版本下的一个特定补丁级别,通常包括了一些错误修复和优化。 Ruby的安装包内可能包含以下组件: 1. Ruby解释器:这是执行Ruby代码的核心组件,允许开发者运行编写好的Ruby程序。 2....
这个名为"最新版linux consul_1.9.1_linux_amd64.zip"的压缩包文件,显然包含了适用于Linux操作系统的Consul 1.9.1版本,且是针对64位(AMD64)架构的。在深入探讨Consul的知识点之前,让我们先了解一下什么是服务...
在Windows环境下安装Ruby 1.9,通常会涉及到编译环境的配置,因为Ruby的源码需要通过编译才能在Windows系统上运行。不过,如果你选择的是预编译的二进制zip包,这个过程就会简化很多。下面,我们将详细讨论如何通过...
同时,理解如何根据数据的维度和规模选择合适的算法和参数设置也非常重要,因为这些因素会直接影响搜索效率和结果精度。 总的来说,FLANN是一个强大的工具,能够帮助开发者在大数据集上快速执行近似最近邻搜索,...
Ruby 1.9.1 和 Gem 1.3.5 是 Ruby 编程语言的关键版本,它们在软件开发中扮演着重要角色。Ruby 1.9.1 是 Ruby 的一个稳定分支,它引入了许多改进和新特性,提升了性能并增强了语言的规范性。 Ruby 1.9.1 的主要更新...
quora, Quora.com 与 Ruby on Rails ( 不再维护) 类似 Quora克隆在 Rails 上的ruby 中写入。要求首先安装软件Linux ( 推荐 Ubuntu 10.10 ) 。ruby 1.9.2 ( 不支持 1.9.1或者 1.8 )MongoDB 1.8Redis 2.
mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe
4、优点:快速上手、全面支持验证、授权、加密和会话、灵活自定义设计、支持web环境、可以无缝集成spring等优点。可以用来用户验证、用户授权、用户session管理、安全加密等 5、基于RBAC五张表:用户表 tb_user、...
ubuntu版本交叉编译器
Ubuntu 14 操作系统下 Docker 1.9.1离线安装文件,安装之后即可使用Docker相关服务部署自己的集群应用。
linux ubuntu常用命令总结(pip,conda,shell命令行等)
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装