今度はrails newしただけのappが動かない。
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)
こんな調子。
何でだ?! とか思って調べたら、こんな対処法が。
というわけで、さっきの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)
ということで、無事に動きませんでした。