Ruby
Rails
windows7
Railsチュートリアル

Rails Tutorial (3rd ed.) で rails g uploader できない

More than 1 year has passed since last update.

Ruby 2.0.0, Rails 4.2.2, Windows7 の環境において、Rails Tutorial | Sec. 11.4 周辺でコケたのでメモ。

お急ぎの方向け

fog を最新版にアップデートしてください。

Gemfile
gem 'fog', '1.36.0'

少しだけ詳しい内容

Rails TutorialSec. 11.4 で、画像のアップローダを実装する過程。原文では次のような gem を Gemfile に追加している。

Gemfile
gem 'carrierwave',             '0.10.0'
gem 'mini_magick',             '3.8.0'
gem 'fog',                     '1.26.0'

このまま bundle して、書いてある通りに rails g uploader Picture すると、以下のようなエラーが出る(なお、環境は Rails 4.2.2, Ruby 2.0.0, Windows 7)。

>rails g uploader Picture
C:/Ruby200/lib/ruby/gems/2.0.0/gems/fog-1.26.0/lib/fog/joyent/compute.rb:3:in
`require': cannot load such file -- net/ssh (LoadError)

fog の GitHub を漁ってみると以下の issue を見つけた。
LoadError: cannot load such file -- net/ssh after upgrading to fog-1.35.0 #3765
どうやら dependency 周りでバグがあったようで、v1.36.0 で修正したとのこと(この issue と今回の問題は少し違う気もするが…)

ということで、fog のバージョンを Gemfile で書き換えてみる。

Gemfile
gem 'fog', '1.36.0'

この Gemfile で bundle すると、無事に rails g uploader Picture が通った。