1

OS:openSUSE 11.4 Rails 3.2.0

とてもシンプルなアプリケーション「koko」を作成しました。これが私が実行したコマンドの順序です

rails new koko
rails generate model Story name:string description:string
rake db:migrate
rails generate controller Stories index

上記のコマンドはすべて正常に実行されました。次に、=>railsserverを実行してサーバーを起動しました。localhost:3000/は正常に機能します。

localhost:3000 /storesを実行しようとすると次のエラーが発生します:(ブラウザにルートの一致がないことに関する最初の行が表示されます)

Started GET "/stories" for 127.0.0.1 at Sat Aug 04 12:52:02 -0400 2012
ActionController::RoutingError (No route matches [GET] "/stories"):
  actionpack (3.2.0) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (3.2.0) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.0) lib/rails/rack/logger.rb:26:in `call_app'
  railties (3.2.0) lib/rails/rack/logger.rb:16:in `call'
  actionpack (3.2.0) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.1) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.0) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.1) lib/rack/lock.rb:15:in `call'
  actionpack (3.2.0) lib/action_dispatch/middleware/static.rb:53:in `call'
  railties (3.2.0) lib/rails/engine.rb:479:in `call'
  railties (3.2.0) lib/rails/application.rb:220:in `call'
  rack (1.4.1) lib/rack/content_length.rb:14:in `call'
  railties (3.2.0) lib/rails/rack/log_tailer.rb:14:in `call'
  rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service'
  /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
  /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
  /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
  /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
  /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
  /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
  /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
  /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
  /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
  /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
  rack (1.4.1) lib/rack/handler/webrick.rb:13:in `run'
  rack (1.4.1) lib/rack/server.rb:265:in `start'
  railties (3.2.0) lib/rails/commands/server.rb:70:in `start'
  railties (3.2.0) lib/rails/commands.rb:55
  railties (3.2.0) lib/rails/commands.rb:50:in `tap'
  railties (3.2.0) lib/rails/commands.rb:50
  script/rails:6:in `require'
  script/rails:6


Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.2.0/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.9ms)
4

2 に答える 2

0

単に名前の問題があるかもしれません。一般的に、コントローラーを作成するときは、

rails g controller stories index

また

rails g controller Story index

次に、自動生成されたルートをに変更します

match "/stories" => "stories#index", :as => "stories"
于 2012-08-08T05:54:35.560 に答える
0

あなたの問題は、RESTful インターフェースを非 RESTful リソースに使用しようとしていることです。モデルを作成し、インデックス アクションを持つコントローラーを作成しました ( /controller_name/action)。

の使用に満足している場合は/stories/index、完了です。より伝統的な RESTful インターフェイスを好む場合は、次を使用することをお/stories勧めします。

rails generate resource ModelName fields:types.

これにより、モデルとコントローラーが作成され、箱から出してすぐに動作するはずです。これにより、コメントで言及されたルートが設定されます。

お役に立てれば!

于 2012-08-08T03:31:53.570 に答える