浏览 4121 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-08
1.关于enrivonment.rb 要把自己在enrivonment.rb中的配置放到: Rails::Initializer.run do |config| 之后 我遇到这个问题时,把以下代码放到该句之前: require 'environments/localization_environment' require 'localization' Localization::load_localized_strings require 'environments/user_environment' 在1.1.6下运行没问题,但在1.2.x不行。 2.关于ActionMailer::Base.server_settings 如果你遇到如下错误: uninitialized constant ActiveSupport::Deprecation::RAILS_DEFAULT_LOGGER (NameError) 那么把你在environments目录下的development.rb, production.rb, test.rb中的ActionMailer::Base.server_settings全部改成ActionMailer::Base.smtp_settings 如果这句话在environment.rb中,可能没这个问题。 3.把所有的"include"语句放到class/modlue定义块中 如果放在class/modlue定义块之前,在1.1.6下可以,但1.2.x不行,你会遇到错误: Error calling Dispatcher.dispatch #<NameError: cannot remove Object::COPYRIGHT> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-08
补充一下:
这些错误最头疼的地方是错误的提示不得要领、不着边际,甚至在出错的调用栈中根本不会出现实际出错的文件名,让查错大费周折。我只好用最笨的排除法,一点一点往回加文件,直到出错然后跟踪原因。 我以前说过,Rails中用了许多不那么直接了当的Magic,这是导致难以找出错误的主因。 |
|
返回顶楼 | |
发表时间:2007-03-08
1、这个问题可能是你的不规范用法引起的。enrivonment.rb里面的注释已经强调了让用户把自己的代码放在最后面了,如果你非要放在前面,也怪不着rails的magic吧。
2、这个是rails1.2.2才改的配置。我这里用server_settings很正常,照常发邮件,只不过log里面会有一条警告信息而已,不会出现你贴出来的那种错误,貌似你在server_setting里面有些什么特殊的配置引起的。 3、为什么要把include放在class/module之前,不放在class/module里面?有什么特殊的用意? |
|
返回顶楼 | |
发表时间:2007-03-08
没有什么特殊的用意,是这个项目一年多前的代码,那时是在用Rails搭原型。
这正好就是我说的ruby的随便之处,你把它放在不同的地方,有时候行(比如:1.1.6),有时候又不行。 用server_settings时,如果放在总的environment.rb下可以,但如果是在environments/development.rb, test.rb, prodution.rb里(需要分别设的情况)就*可能*不行,这个可能不行还跟你可能用了一些plugin有关。 不同的Rails项目可能使用了不同的插件,而比较复杂的应用,有时需要超出Rails的约定,这时,这个界限在哪里就很难控制,我希望开发语言或者框架具有一定的一致性,不能在版本A下就可以,在版本B下就不行,而这种不行甚至连写框架的人也未必意识到。 |
|
返回顶楼 | |
发表时间:2007-03-08
dcaoyuan 写道 这正好就是我说的ruby的随便之处,你把它放在不同的地方,有时候行(比如:1.1.6),有时候又不行。 这个不是Ruby的随便之处吧,肯定是Rails的更新引些的 |
|
返回顶楼 | |
发表时间:2007-03-09
我的升级也遇到很多怪异问题,原来把string储二进制文件,升级过后就不能正常使用,会出现截断。网上也找不到相关资料。
后来发现这个问题只存在于win32平台,linux上完全正常,现在找不到好方法解决win32上兼容性问题,看了老外没有几个人在win32上耍rails。在linux上开发又不方便,也买不起mac ,只好老老实实退回到1.1.6。反正发布的时候改成1。2。2,没发现有兼容性问题。 如果你只是在win32上试过,可以linux上试试看。说不定就没有问题了。 |
|
返回顶楼 | |