这两天把原有一个项目从rails 2.2.2升级到了rails 2.3.4,在activescaffold插件上耗费了许多时间,但总算都解决了。
1.升级activescaffold
首先要说明的是AS的官网很是诡异。里面的文档几乎不更新,反而github wiki上才是最新的。所以大家不要找错地方了。
按照文档,升级AS到2.3版本需要以下两步:
1). ruby script/plugin install git://github.com/activescaffold/active_scaffold.git
2). ruby script/plugin install git://github.com/ewildgoose/render_component.git -r rails-2.3
但是注意: 第二步安装的render_component插件在rails 2.3.4上并不能使用。启动时会出现 无效的方法"set_session_options"的错误。我最后是在github上找了另一个render_component插件才好的。在这里浪费了我至少2个小时。
2). ruby script/plugin install git://github.com/weplay/render_component.git
2.中文化
原来我使用的是localization插件。并在Object类中加入了as_()方法来实现中文化。可是此插件在rails 2.3.4中也会报错。于是我就直接采用rails自带的I18n国际化方法。当然还是需要加入as_()方法.代码如下
class Object
def as_(string, *args)
if string
r = I18n.t(string,*args)
if (r =~ /^translation missing/)
return string
end
return r
else
return string
end
rescue
return string
end
end
附上翻译文件: