今天升級到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,可能不會遇到這個問題。