今天升级到Rails 2.3.3,生成指南和生成API时都遇到错误提示,解决后把经历写下来,以供遇到同样问题的人参考。觉得有用的帮忙顶一下,觉得没用的请忽略。
生成指南时提示缺少credits.erb和index.erb
例行地把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文档时遇到Don't know how to build task 'README'错误提示
也是在运行生成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,可能不会遇到这个问题。