長年の Java 開発者、初めての Ruby 開発者。Rails アプリで「hello world」のステップにたどり着こうとして、苦労しています。
ここで基本的な何かが欠けていると確信しています。そうは言っても、StackOverflow の「似たようなタイトルの質問」や Google の「ruby rails hello world」ヒット (またはその変形) のどれも、私が見逃しているものを明確にしていません。
ruby (v1.9.3p194)、gem (1.8.23)、rails (3.2.3) を RVM 経由でインストールしました。以下を使用してコントローラーを生成しました。
rails generate controller common
デフォルトの「config/routes.rb」には、次の 2 つのルーティング試行があります。
Web::Application.routes.draw do
root :to => "common#index"
match ':controller(/:action(/:id))(.:format)'
end
最初に「rails server」を実行し、ブラウザに「http://localhost:3000/common」をロードしたとき、次のように表示されました。
Unknown action
The action 'index' could not be found for CommonController
これは、共通コントローラーの「インデックス」が定義されていないためであることがわかったので、「app/controllers/common_controller.rb」を編集して次の内容を含めました。
class CommonController < ApplicationController
def index
end
end
ブラウザの「http://localhost:3000/common」に次のように表示されます。
Template is missing
Missing template common/index, application/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/coding/workspace/[My] Toolbag/web/app/views"
ルートでも同じことがわかります。これは理にかなっています。
私が見つけたものから、これは明らかにコントローラーに何もレンダリングされていないことが原因であるため、代わりに「app/views/common/index.html.erb」で何かをチェックする必要があると思います-しかし、私はそうします以下を含むファイルがあります。
<h1>Hello World</h1>
また、「index.html.erb」の名前を「_index.html.erb」、「index.html」、および「index」に変更してみました。これらはすべて、コンソール エラー「ActionView::Missing Template」の Google バリアントに基づいており、上記の同様のブラウザ出力。
Google の結果の多くには提案のスニペットが含まれていますが、その提案を使用してどのファイルを編集するかについて明確なガイダンスがないか、または上記で既に実行した手順を繰り返します。
誰かが私が欠けているものをアドバイスできるなら、私はそれを感謝します.
PS: ここで参照されているすべてのファイルの "root:root" 所有権を持つ、スーパーユーザーとして実行しています。Rails は通常のユーザーとして実行することを意図しているのでしょうか? そうだとしても、ここまでやれるとは思えないけどね。