LoginSignup
3

More than 5 years have passed since last update.

Railsでrspec:installが実行できない際の応急処置

Posted at

Railsを始めて2日目。


Ruby on Rails チュートリアルの第3章で
$ rails generate rspec:install
を実行する場面が出てきました。
http://railstutorial.jp/chapters/static-pages?version=4.0#top (リスト3.2の辺り)

最初に実行すると
`require': cannot load such file -- active_job/railtie (LoadError)
というエラーに遭遇したので、それをそのままググってみると、どうやらRailsのバージョンの問題らしい。
http://qiita.com/jnchito/items/f3bde6e46afbeba8cb82

ひとまず
$ rails -v
Rails 4.0.5
$ rails _4.0.5_ new sample_app --skip-test-unit

というステップを踏んで再度やり直し。

再び
$ rails generate rspec:install
を実行すると、今度は
`<top (required)>': uninitialized constant SampleApp (NameError)
というエラーが発生。

ここまでのステップでSampleAppという名前はチュートリアル(http://railstutorial.jp/chapters/static-pages?version=4.0#top) のリスト3.2にしかない
config/initializers/secret_token.rb
SampleApp::Application.config.secret_key_base = secure_token

NameErrorのエラーなので、この一行をコメントアウト。
すると
$ rails generate rspec:install
create .rspec
create spec
create spec/spec_helper.rb

となり成功しました。

(あまり理解せぬまま実行・成功したので応急処置です)


その後先輩に聞いたところ、ここのSapmleAppはプロジェクト名らしい。
チュートリアル内では
$ rails new sample_app --skip-test-unit
というコマンドでプロジェクトを生成。
コマンドではsapmple_appと命名したものが、諸ファイルの中ではSampleAppと表記されるらしい。

私は今回はプロジェクト名をsample_3.1としてしまったがために、
config/initializers/secret_token.rb
Sample3.1::Application.config.secret_key_base = secure_token

と変更して実行すると
no .<digit> floating literal anymore; put 0 before dot (SyntaxError)
というエラーを生んでしまいました。

次回以降はプロジェクト名に「.」を使用しないように気をつけようと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3