web-dev-qa-db-ja.com

レーキルートエラー「ルート定義のアクションキーがありません」

私は得ています

$ rake routes
rake aborted!
ArgumentError: Missing :action key on routes definition, please check your routes.
/usr/local/rvm/gems/Ruby-2.1.2/gems/actionpack-4.1.5/lib/action_dispatch/routing/mapper.rb:243:in `default_controller_and_action'
/usr/local/rvm/gems/Ruby-2.1.2/gems/actionpack-4.1.5/lib/action_dispatch/routing/mapper.rb:117:in `normalize_options!'
/usr/local/rvm/gems/Ruby-2.1.2/gems/actionpack-4.1.5/lib/action_dispatch/routing/mapper.rb:65:in `initialize'
/usr/local/rvm/gems/Ruby-2.1.2/gems/actionpack-4.1.5/lib/action_dispatch/routing/mapper.rb:1487:in `new'
/usr/local/r................

ここに私のRoutes.rbがあります

Rails.application.routes.draw do
  get 'script/index'

  get 'landing/index'

  root 'landing/index'
end

問題の原因と解決方法を教えてください。

36
Tithos
Rails.application.routes.draw do
  get 'script/index' => 'script#index'
  get 'landing/index' => 'landing#index'
  root 'script#index'
end
49
Kaleidoscope

あなたはそれを多くの方法で行うことができます、これらはすべて動作します:

  • 「スクリプト/インデックス」を取得
  • get 'script/index' => 'script#index'
  • 「script/index」を取得、「script#index」

path firstとcontroller#methodを考えてください。

ルートは常に特別なケースです。root 'script#index'

11
rtfminc

変化する root 'landing/index'からroot 'landing#index'

5
icedTea

Rails gを実行すると同じエラーが発生しました。

routes.rbを使用するコマンドを実行する場合、コマンドが機能するためにはファイルにエラーがない必要があります。

あなたの場合、パスはありましたが、アクションと一致しなかったため、routes.rbファイルが壊れていました。 get 'landing/index' => 'my_controller#my_action'のようなものが必要でした

1
Mirror318

Kaleidoscopeのコードは問題なく動作します。以下は少し簡潔なバージョンです。

Rails.application.routes.draw do
  get 'script/index'
  get 'landing/index'
  root 'script#index'
end

Railsでは、/ with #

0
James Parker