2

私は RoR を初めて使用し、ここ数日間環境のセットアップに取り組んできました (Mountain Lion を実行しています)。このレッスンを見たとき、ようやく開発できるようになり、lynda.com でトライアルを開始することにしました。

Rails の原理と理論を学ぶにはこれまでのところ素晴らしいものでしたが、2010 年に作成されたもので、Rails のメジャー リリース間でどれだけの変更が加えられているかを痛感しました。たとえば、生成されたプロジェクトにはスクリプト フォルダーが含まれなくなりました。これらは、Mac のコマンド ラインでrailsコマンドを使用して呼び出されるだけです。

最後のレッスンで、講師は新しい Rails プロジェクトを生成し、コントローラーを追加しました。

class SayController < ApplicationController

  def hello
  end

end

ビューを追加しました(views -> say -> ['hello.rhtml'])

<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <p>Hello World</p>
    </body>
</html>

それだけでした。次に、Rails サーバーを起動し、firefox にジャンプして、アドレスを入力しました[http://localhost:3000/say/hello]。ご想像のとおり、ブラウザには「Hello World」というテキストが表示されました。

しかし、「[GET] '/say/hello' に一致するルートはありません」というメッセージが表示されます。これがルートの問題であることはわかっていますが、使用法に関する適切な (および RoR 4 固有の) 説明が見つかりません。

インストラクタープロジェクトでデフォルトですべてが機能するように見える行は次のとおりです。

map.connect ':controller/:action/:id'

これを追加してみました (routes.rb はすべてコメントアウトして生成されました)、うまくいきませんでした。RoR 4 の規約が異なっていると思います。

RoR 4 のデフォルト ルートはありますか? v4 では、null を返すアクションや構文が変更されたアクションは許可されませんか?

エラーページには、私の現在のルートがRails.root: /Users/abcde/Sites/RoR/my_app/レールサーバーを実行している場所であると表示されているため、それが問題かどうかはわかりません。

ルート トレースとログは、ルート (/say/hello/) が存在しないことを再度示しているだけですが、必要に応じて投稿できます。

4

2 に答える 2

7

その構文は古いようです。私は次を使用します:

get '/say/hello'

それでもうまくいかない場合は、コントローラーとアクションを指定します。

get '/say/hello', to: 'say#hello'
于 2013-07-30T23:36:43.550 に答える
0
match '/:controller/:action', :via => :get

動作するはずです!

于 2014-05-23T04:53:54.873 に答える