今天升级到Rails 2.3.3,生成指南和生成API时都遇到错误提示,解决后把经历写下来,以供遇到同样问题的人参考。觉得有用的帮忙顶一下,觉得没用的请忽略。
例行地把Rails固化:
rake rails:freeze:gems
之后顺手运行了一下生成指南的命令:
rake doc:guides
出现如下错误提示:
Missing template credits.erb in view path config/../vendor/rails/railties/lib/../guides/rails_guides/../source
郁闷了彷徨了半天都搜索到解决方法,决定孤军深入,一探究竟。于是:
cd vendor/rails/railties/guides/source/
ls之后没有发现credits.erb,但是有一个credits.erb.textile文件,cat出来发现是文档的源代码。好像有希望,不妨试试:
cp index.erb.textile index.erb
回到程序主目录后再运行生成指南的命令,提示还是少文件:
Missing template index.erb in view path config/../vendor/rails/railties/lib/../guides/rails_guides/../source
再进去vendor/rails/railties/guides/source/,如法泡制一次:
cp index.erb.textile index.erb
再回程序主目录,运行生成指南的命令,这次成功了:
Generating 2_2_release_notes Generating security Generating rails_on_rack Generating contribute Generating active_record_basics Generating routing Generating migrations Generating command_line Generating action_controller_overview Generating performance_testing Generating contributing_to_rails Generating configuring Generating plugins Generating credits Generating getting_started Generating layouts_and_rendering Generating 2_3_release_notes Generating association_basics Generating testing Generating active_record_querying Generating index Generating caching_with_rails Generating activerecord_validations_callbacks Generating debugging_rails_applications Generating form_helpers Generating nested_model_forms Generating action_mailer_basics Generating i18n
对于没有把Rails固化到vendor目录的程序,可以通过对rails安装的目录(一般是gems所在位置)rails-2.3.3/guides/source/下的index.erb.textile和credits.erb.textile进行操作。
也是在运行生成Rails API文档命令时:
rake doc:rails
遇到错误提示:
Don't know how to build task 'README'
瞎搞了一会,发现原因是rake在生成Rails API文档是会读程序主目录中的README,找不到就出错了。于是创建一个全新的rails应用,把主目录里的README复制过来。再运行生成API的命令,终于通了:
README: CHANGELOG: MIT-LICENSE: README: performance_test_help.rb: dispatcher.rb: test_help.rb: c. rails_generator.rb: railties_path.rb: initializer.rb: mc............c........................ 以下省略两万行
如果程序的主目录还保留着README,可能不会遇到这个问题。