るびらな!

RubyをLearnする人の勉強記録。(超)弩(級の)素人なので、誰かダメさがわかる人に罵ってもらったりして、少しずつ知見を広げたいと思っています。

今度はrails newしただけのappが動かない。

ここも押していただけると嬉しいです #=> にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ Rubyへ にほんブログ村 IT技術ブログ Ruby on Railsへ


rubygems.orgにSSL接続するまでにほぼ24時間迷走した話。 - るびらな!


前回色々迷走した結果、何とかrailsが動き始めたわけですが。

今度は、rails newコマンドを以下のように実行して、

rails new myAppTest

bundle updateして、bundle installして、というところは無事にいったんですね。

そして、よし、とりあえず何もしてないけどアクセスしよう!と思って

rails s

するわけじゃないですか。

すると、こんな感じでエラーが。

> rails s
=> Booting WEBrick
=> Rails 4.0.5 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
c:/rails/test/myAppTest/config/environments/development.rb:2:in `<top (required)>': undefined method `configure' for #<myAppTest::Application:0x007f8451537d20> (NoMethodError)
   from c:/railsinstaller/ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-4.0.5/lib/active_support/dependencies.rb:229:in `require'

うーん、configureが未定義だとな…

というわけで、とりあえずmyAppTest/config/environments/development.rbを開くと、

Rails.application.configure do

という感じになっていたのですが、Railsの元のソースを見るとApplicationとなっていたので、ついでにRailsのところも本来継承しているので大丈夫なはずですが以下のように変更してみました。

MyAppTest::Application.configure do

と、こんな感じで、最初のエラーは無事に通りました。

しかし、次なる罠が。

さあ、これで大丈夫なはず! 次は通るぞ! と思って、rails s するわけじゃないですか。


今度は、tzinfoでエラーを吐いて、タイムゾーンがわからんよ!とか言い出すわけですよ。

C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-4.1.0.beta1/lib/active_support
/core_ext/time/zones.rb:70:in `rescue in find_zone!': uninitialized constant TZI
nfo::InvalidTimezoneIdentifier (NameError)

こんな調子。

何でだ?! とか思って調べたら、こんな対処法が。


activesupport - Uninitialized Constant TZInfo::InvalidTimezoneIdentifier (NameError) - Rails 4 - Stack Overflow

というわけで、さっきのenvironment.rbの冒頭を以下のように変更。

# adding this fixes the issue
require 'tzinfo'

# Initialize the rails application
MyAppTest::Application.initialize!

MyAppTest::Application.configure do

ということで、rails sすると、今度は無事に通った!

よし、アクセス!

と思ったら、またエラー。

Internal Server Error

You must set config.secret_key_base in your app's config.
WEBrick/1.3.1 (Ruby/2.0.0/2014-11-13) at localhost:3000

今度は内部エラーかい!

ということで、再びコンソールを見ると、こんなことに。

DEPRECATION WARNING: You didn't set confit.secret_key_base. Read the upgrade documentation to learn more about this new config option. (called from service a c:\RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/webrick/httpserver.rb:138)

ということで、無事に動きませんでした。