6

問題文は、名前付きルートを作成します。'/zombies/:name' のようなパスを生成する必要があります。ここで、:name はパラメーターであり、ZombiesController のインデックス アクションを指します。ルートに「墓場」という名前を付けます

リソースはリソースです

zombies
id  name    graveyard
1   Ash     Glen Haven Memorial Cemetary
2   Bob     Chapel Hill Cemetary
3   Jim     My Fathers Basement

私の解決策は

TwitterForZombies::Application.routes.draw do
  match ':name' => 'Zombies#index', :as => 'graveyard'
end

私も試しました

TwitterForZombies::Application.routes.draw do
      match ':name' => 'Zombie#index', :as => 'graveyard'
    end

どちらの場合でも発生するエラーは

Sorry, Try Again
Did not route to ZombiesController index action with :name parameter

私は何を間違っていますか??

4

4 に答える 4

8

これを試して

match '/zombies/:name' => 'zombies#index', :as => 'graveyard'
于 2011-05-17T11:14:08.250 に答える
8

これを試して:

match '/zombies/:name',:to=> 'zombies#index', :as => 'graveyard'

RailsForZombies::Application.routes.draw do
    resources :zombie
    match '/zombies/:name',:to=> 'Zombies#index', :as => 'graveyard'
end
于 2011-05-17T11:36:28.923 に答える
2

Rails for Zombies が Rails 4 用に更新されました。matchメソッドは非推奨になりました。Rails では、応答するHTTP 動詞 ( getなど) を指定する必要があります。Rails for Zombies のレベル 5 チャレンジ 5 が更新された場合、これは 1 つの可能な解決策です。

TwitterForZombies::Application.routes.draw do
  get '/zombies/:name', to: 'zombies#index', :as => 'graveyard'
end
于 2014-02-21T19:51:26.077 に答える
1

これは私のために働く

RailsForZombies::Application.routes.draw do
  match 'zombies/:name' => 'Zombies#index' , :as => "graveyard"
  #match ':name' => 'Zombie#index', :as => 'graveyard'
  #match 'zombies/:name',:to=> 'zombies#index', :as => 'graveyard'
end
于 2012-06-22T16:47:09.030 に答える