1

Railsを初めて使用するので、基本的な「helloworld」アプリを起動して実行しようとしています。具体的には、Railsを使用したアジャイルWeb開発の第2章にあるアプリです。hello worldページをロードすると、タイトルに示されているエラーが発生します。


これまでのところ、私は次のことを行いました。

rails new demo
cd demo

利用可能なJavaScriptランタイムがないことについての不満gem 'therubyracer'Gemfile後に追加されました。ExecJS

bundle install
rake about         # (see below)
rails generate controller Say hello goodbye
rails server

この時点でWEBrickが起動し、ロードしhttp://localhost:3000/say/helloます。WEBrickは、次のエラーをログに記録します(これはブラウザーにも表示されます)。

Started GET "/say/hello" for 127.0.0.1 at 2012-10-26 11:45:10 -0400
Connecting to database specified by database.yml
Processing by SayController#hello as HTML
  Rendered say/hello.html.erb within layouts/application (80.9ms)
Completed 500 Internal Server Error in 167ms

ActionView::Template::Error (uninitialized constant ExecJS::RubyRacerRuntime::Context::V8
  (in /home/error/work/demo/app/assets/javascripts/say.js.coffee)):
    3: <head>
    4:   <title>Demo</title>
    5:   <%= stylesheet_link_tag    "application", :media => "all" %>
    6:   <%= javascript_include_tag "application" %>
    7:   <%= csrf_meta_tags %>
    8: </head>
    9: <body>
  app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___1746644185114933585_70069037653480'


  Rendered /home/error/.gem/ruby/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_trace.erb (3.7ms)
  Rendered /home/error/.gem/ruby/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (2.2ms)
  Rendered /home/error/.gem/ruby/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (18.7ms)
[2012-10-26 11:45:12] WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true

rake about戻り値:

About your application's environment
Ruby version              1.9.3 (x86_64-linux)
RubyGems version          1.8.24
Rack version              1.4
Rails version             3.2.8
JavaScript Runtime        therubyracer (V8)
Active Record version     3.2.8
Action Pack version       3.2.8
Active Resource version   3.2.8
Action Mailer version     3.2.8
Active Support version    3.2.8
Middleware                ActionDispatch::Static, Rack::Lock, #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x0000000276b298>, Rack::Runtime, Rack::MethodOverride, ActionDispatch::RequestId, Rails::Rack::Logger, ActionDispatch::ShowExceptions, ActionDispatch::DebugExceptions, ActionDispatch::RemoteIp, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::ConnectionAdapters::ConnectionManagement, ActiveRecord::QueryCache, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, ActionDispatch::ParamsParser, ActionDispatch::Head, Rack::ConditionalGet, Rack::ETag, ActionDispatch::BestStandardsSupport
Application root          /home/error/work/demo
Environment               development
Database adapter          sqlite3
Database schema version   0

ワークステーションはFedora17x86_64を実行しています。それにもかかわらず、私はyumリポジトリのruby gemをほとんど無視し(私は思う)、gem install必要なものすべてを取得するためにホームディレクトリで使用しました。(繰り返しますが、私は思います。)

RubyとRailsに慣れていないので、まだ気付いていない明らかな慣習を見逃していると確信しています。また、どのような追加情報を提供する必要があるのか​​よくわかりませんので、そのこともお知らせください。

4

1 に答える 1

2

これを試してください:

sudo apt-get install nodejs

rubytheracerとnodejsはどちらもjavascriptライブラリです。最近、ほとんどの人がnodejsを利用しています。

于 2012-10-26T16:31:22.157 に答える