正在加载...

PF BLOG

业内良知——淘宝网提供rubygems镜像站

程序员一般都很少关心政治,但是每当重要的技术站点被wall时,很多人都要自言自语一个字:cao!就比如rubyer们比较喜爱的http://rubygems.org/。。。不多说这个了话题了,今天要给ruby程序员转告的一个喜讯是:淘宝网提供了速度暴快的国内rubygems镜像站:http://ruby.taobao.org/

» 阅读全文

Rails 2 替换Prototype为jQuery

一直习惯于用jQuery,但是Rails 2默认的JS框架是Prototype,网上找到一个解决方案:

下载安装jrails插件:

	script/plugin install git://github.com/aaronchi/jrails.git
会把需要的js文件拷贝到public/javascripts目录下。

» 阅读全文

转载:Rails "Plugin not found"错误解决

使用Ruby 1.8.7和Rails 2.3.5,每次执行script/plugin install ...都出现

	Plugin not found: [...]
无论是使用http协议,还是在末尾添加斜杠都不起作用。
 
出现这个问题的原因是因为Ruby 1.8.7是用mingw32编译的,可以通过ruby -v查看:
	$ ruby -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [i386-mingw32]

» 阅读全文

Rails中的Migrations详解(PDF下载)

在Javaeye看到的好文章,整理成PDF格式供初学Rails的朋友下载:

rails中的migrations.pdf

redmine 1.1.1 基础环境版本要求

前段时间因为没有认真阅读readme和update.log吃了不少苦头,反复地折腾运行环境(感觉ruby和rails最糟糕的就是不同版本兼容性太差了),现在终于能够对这些gems的版本要求完全掌握了,redmine 1.1.1 目前需要以下环境:

ruby 1.8.7    
rails 2.3.5  
gem 1.3.5  
rack 1.0.1
i18n-0.4.2.gem   
rake-0.8.7.gem 

#当然在gem install rails -v=2.3.5 的时候还会自动安装上:

actionmailer-2.3.5.gem   
actionpack-2.3.5.gem   
activerecord-2.3.5.gem   
activeresource-2.3.5.gem   
activesupport-2.3.5.gem 

看准这些,除了ruby必须是1.8.6/1.8.7之外,任何一个gem包的版本错误都可能造成应用出错。今后的版本问题请认真读redmine官网上的update.log,每一次升级都会注明所依赖的环境版本。 

» 阅读全文

thin 安装失败一例的解决方法

ruby(1.8.7)下安装thin的时候遇到一下错误提示:

C:\Documents and Settings\Administrator>gem install thin
ERROR:  Error installing thin:
	The 'eventmachine' native gem requires installed build tools.

Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'

折腾半天,原来是默认eventmachine版本不匹配造成的问题,于是试了下最新版(预览版):

gem install eventmachine --pre

安装成功以后,再试一下gem install thin发现问题已经解决了。

关于Rails数据库表名必须用复数形式单词的问题

初学Rails的TX都可能会遇到这个疑惑:Rails的数据库名为什么被约定为复数形式?

其实,这只是个约定而已,为了减少在运用过程中反复的指定,提高效率,同时减少出错机会。但是有的人就感觉很不爽了,毕竟英语的复数形式不单单是加个S就通吃的,比如Person的复数形式为People,新建个名称为person的models,数据库表名却需要起成people,这样的单词多了,英语不好的有可能会遇到这个问题。

那么灵活的ROR肯定不会这么死板,完全在于你的定制(配置),要想去掉这个约定,只需要在environment.rb里加上:
 

ActiveRecord::Base.pluralize_table_name = false

rails初学者的疑问——冒号(:)

#示例:
class AttachmentsController < ApplicationController
  before_filter :find_project
  before_filter :file_readable, :read_authorize, :except => :destroy
  before_filter :delete_authorize, :only => :destroy
#...省略

先打断一下Rails,说说Ruby语言里的一个特色--由冒号(:)作前缀组成的字符串,例如:id,:first等等。Ruby把它们称之为symbol(直译为“符号”,似乎不妥)。

» 阅读全文

redmine :rake db:migrate RAILS_ENV="production" 错误解决办法

在初始化redmine数据库的时候可能你会出现这样的错误:

E:\ruby\redmine>rake db:migrate RAILS_ENV="production"
(in E:/ruby/redmine)
rake aborted!
syntax error on line 8, col 2: `  encoding: utf8'

(See full trace by running task with --trace)

 

解决办法:

在redmine目录下config/database.yml 中配置mysql连接密码时应在密码前加一个空格:

# MySQL (default setup).

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: 123456
  encoding: utf8

其实,只要在修改配置文件的时候,把行都对齐,格式统一就不会出现此类问题了。

“msvcrt-ruby18.dll was not found”问题的原因及解决办法

当运行mongrel出现“msvcrt-ruby18.dll was not found”问题的时候我的配置为:windows xp sp3+ruby1.9.2+gem1.5.2+mongrel1.1.5 ,在网上搜遍没找到原因和解决办法,后来还是在给力的stackoverflow上找到答案:

造成这个错误是由于mongrel1.1.5和ruby1.9.2不兼容造成的,汗,怪不得网上很多高手用ruby1.8.6而不用最新版本,在这里给新手提个醒:ruby1.8.6版本还是目前最稳定、兼容性最强的版本。

不过既然费了老劲儿装了,就在1.9.2版本上解决吧:

» 阅读全文