13

長年の 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 は通常のユーザーとして実行することを意図しているのでしょうか? そうだとしても、ここまでやれるとは思えないけどね。

4

2 に答える 2

10

それは奇妙です。手順を正確に繰り返して動作させ(rails3.2.3とruby1.9.3-p0を使用)、localhost:3000/commonにアクセスすると「HelloWorld」が表示されました。

http://grab.by/dg6Y

これが、セットアップに問題がないことを確認するために、私が実際にすばやく試してみることです。

1)Railsプロジェクトディレクトリ内のCD

2)これらのターミナルコマンドを発行します

rails g足場ユーザー名:文字列eメール:文字列

rake db:migrate

3)このURLにアクセスし ますhttp:// localhost:3000 / users

レールが正しく設定されている場合は、次のように表示されます。

http://grab.by/dg74

これらの手順が機能しない場合は、セットアップで何か奇妙なことが起こっているようです。

また、必ずpublic/index.htmlアプリからファイルを削除してください。削除しないと、ルートファイルで指定したカスタムルートページを表示できません。

上記が機能しない場合は、Rubyバージョンに問題がある可能性がありますか?

お役に立てれば!

于 2012-04-24T06:45:17.640 に答える
10

わお。私は実際に実際の根本的な問題に出くわしました:

名前に括弧が含まれるフォルダー内にプロジェクトを作成していました。つまり、「/coding/workspace/[My] Toolbag」内から「rails new web」を実行していました。

今夜、たまたま「/coding/workspace」でもう一度試してみたところ、ようやく機能しました。そこで、次の場所から「rails new web」をテストして、疑念を具体化しました。

/coding/workspace/test1
/coding/workspace/test 2
/coding/workspace/test [3]
/coding/workspace/test [4
/coding/workspace/test ]5
/coding/workspace/test [6/subfolder

疑惑確定。フォルダー 3、4、6 内の Rails プロジェクトは、この質問で説明した問題を示していますが、フォルダー 1、2、5 内の Rails プロジェクトは問題なく動作します。

具体的には、問題はパスのどこかにある開き括弧です: "["

Linux Mint を使用しています。この問題はさらに広範囲に及ぶ可能性がありますが、他のディストリビューション、Windows、または Mac での再現はまだ試みていません。

ブレット・サンダースの繰り返しの支援と、私のアプローチが正しいはずだったという確認に感謝します。他の誰かが同じ問題に遭遇した場合に備えて、この回答を送信し、これを正しいとマークします。

于 2012-04-26T07:25:15.640 に答える