0

私は Rails (およびこのサイト) を初めて使用し、Lynda.com のチュートリアルに取り組んでいます。チュートリアルは約 3 年前に作成されたため、多くの問題が発生しました。途中でプログラミング言語が変更されたようです。幸いなことに、ほとんどの問題を回避する方法を見つけましたが、前に進むのを妨げている特定の問題が 1 つあります。

バージョン:

ルビー 2.0.0p195

Mysql 14.14 dis 5.6.12

ジェム 2.0.3

demo フォルダー内の別の.html.erbページに接続しようとしていますが、スクリプトの定義によって認識されません。

ここの視覚的な例: https://dl.dropboxusercontent.com/u/56018487/rubyexample.png

「def hello」および「def other_hello」は、アプリケーションのビューの下にあるデモ フォルダー内の hello.html.erb および other_hello.html.erb ファイルを自動的に検索する必要があることを理解しています。しかし、サーバーを実行してアドレス バーにこれらの場所を入力すると、Firefox は localhost:3000/demo/hello または localhost:3000/demo/other_hello を使用してそれらの場所を見つけられません。とても簡単なことだと思いますが、2 日間の Web 検索で答えが見つかりませんでした。

トラブルシューティングの一環として、コメントアウトされた「def index」セクションの下で個々のバリエーションを試しました。get "demo/index"をコメントアウトしていない場合、「def index」セクションから各ページにアクセスできますが、「def hello」または「def other_hello」セクションからはアクセスできません。

更新: 私の問題に対する動的な回答を得ることは私の目標です。Rails 2 には、すべての受信情報を処理するエレガントな 1 行のコードがあります。

これが理にかなっていることを願っています。提案があれば教えてください。

この件であなたの助けを求めてzeantsoiとMuntasimに叫びます. 私はあなた方一人一人にポイントを与えたいと思いますが、このサイトは私がそれをすることを許可していません.

4

2 に答える 2

2

まだルートを定義していないようです。runnngrake routesで確認して、ルートがあるかどうかを確認できます。それ以外の場合は、次を使用してルートを定義します。

# config/routes.rb
match 'demo/hello', 'demo#hello'
match 'demo/other_hello', 'demo#other_hello'

または単に:

get 'demo/hello'
get 'demo/other_hello'
于 2013-06-16T02:16:38.107 に答える
1

DemoControllerアクションへのルートがありません。次のように追加します。

# config/routes.rb
match 'demo/hello', 'demo#hello'
match 'demo/other_hello', 'demo#other_hello'

これらのルートを設定すると、パスおよびにそれぞれアクセスして、helloおよびアクションにアクセスできます。other_hellodemo/hellodemo/other_hello

考慮すべきもう 1 つのことは、ルートに名前を追加することです。これにより、コントローラーとビューからのルーティングが大幅に容易になります。

# config/routes.rb
match 'demo/hello', 'demo#hello', :as => demo_hello

次に、ビュー (またはコントローラー) で、次を使用できます。

demo_hello_path #=> /demo/hello
demo_hello_url #=> hostname/demo/hello

編集:

コントローラーとアクションに動的にルーティングする場合は、次の一致パターンを使用できます。

# config/routes.rb
match ':controller/:action'

このルートが実行される順序によっては、他のハードコーディングされたルートをオーバーライドする (またはオーバーライドされる) 可能性があることに注意してください。

参考までに、公式の Rails ルーティング ガイドの動的セグメントに関するセクションは、物事がどのようにマッピングされているかを理解するのに役立ちます。

于 2013-06-16T02:14:51.300 に答える