1

このコマンドでPagesControllerを生成した後-

>rails g controller Pages Home About Contact

Fileの行match ':controller(/:action(/:id))(.:format)'のコメントを外します。routes.rb

私が自分のURLにアクセスしていたとき-

http://localhost:3000/pages/home

エラーをスローします

不明なアクション

PagesControllerのアクション「home」が見つかりませんでした

ただし、このようにアクセスした場合、これは機能していました-

http://localhost:3000/pages/Home

スモール/アップケースが私の最初の考えだったので、ここroute_downcaserで提案されているようにインストールしまし

問題は、両方のURLが同じエラーをスローしていることです-

http://localhost:3000/pages/home
http://localhost:3000/pages/Home

エラー

不明なアクション

PagesControllerのアクション「home」が見つかりませんでした

このエラーを解決する方法を教えてください。

Githubでの私のプロジェクト-GithubURL

使用するWindows 7

Railsバージョン-3.2.9

編集

routes.rb file - 

Addbootstrap::Application.routes.draw do
  get "pages/Home"

  get "pages/About"

  get "pages/Contact"

  get "pages/Drop_Down"

  match ':controller(/:action(/:id))(.:format)'
end
4

1 に答える 1

3

Ruby では、大文字のメソッド名を使用したくありません。大文字で始まる名前は、定数 (クラス/モジュール) 用に予約されています。

Aside from that, if you are using a gem that downcases your route from Home to home, and the method is named Home, then that is why it will fail. Make sure the method names are downcased.


In case anyone is going to point this out, I'll preempt. CapsCase method names are valid in ruby, they are just not conventional, and may be confusing. As such are considered a BadIdea. The only really special thing about CapsCase names is when they are assigned a value, ruby will raise warnings if you try to assign it again.

于 2013-02-25T06:45:59.300 に答える