私のhomecontrollerは次のものを持っています:私のルートはリソースを持っています:家庭ですが、rspecは経路が定義されていないと言っていますか?
def about()
end
そして私は「約」を得るrspecテストを持っています。
これはコントローラー内のすべてのアクションをマップしません:
resources :home
または、ホームコントローラーの各アクションを明示的に指定する必要がありますか?
私のhomecontrollerは次のものを持っています:私のルートはリソースを持っています:家庭ですが、rspecは経路が定義されていないと言っていますか?
def about()
end
そして私は「約」を得るrspecテストを持っています。
これはコントローラー内のすべてのアクションをマップしません:
resources :home
または、ホームコントローラーの各アクションを明示的に指定する必要がありますか?
resources :home
は、デフォルトのRESTfulルート(インデックス、表示、新規作成、編集、更新、および破棄)を設定します。追加ルートを指定する必要があります。これはあなたのルート「/ホーム/について」を与える
resources :home
collection do
get 'about'
end
end
:あなたはこのようにそれを指定したいので、あなたは、簡単なコレクションのルートを追加しているように見えます。私は、あなたがRailsの2.xの中であれば、これはRailsの3であると仮定ので、同じようにそれを行う:
map.resources :home, :collection => {:about => :get}
コマンドラインから、あなたは常にあなたがこのコマンドで用意しているルートを確認することができます
rake routes
こちらがお役に立てば幸いです。
EDIT:あなたはデフォルトルートが必要な場合、あなたはこれを追加することができます。
match ':controller(/:action(/:id))'
これは、任意の一般的な要求にマッチしますデフォルトルートです。
FULL ARTICLE: Rails 3のルーティングは、独自の獣です。そこ最近それについての質問をたくさんされているので、私は他の人を助けるために、コードサンプルと非常に詳細な記事を作成しました:
私は周りを再生するためにダウンロードすることができコンパニオンのRails 3アプリケーションを作成同様に、と:ご質問があれば
https://github.com/kconrails/rails3_routing
、私のサイトを打つとお尋ね下さい。ありがとう!
追加のアクションをしたい場合、リソースはあなたにコントローラの7つのCRUDメソッドを与える、あなたは以下のような何かをする必要があります。
resources :homes do
collection do
match "about" => "homes#about", :as => "about"
end
end
その後、あなたはまた、追加about_homes_path/URLヘルパーを持っています利用可能です。
はいレール3、ありがとう! – Blankman
それを行う方法がないのに驚いて、自動的にそれらをすべて配線する方法があるはずです... – Blankman
これは私にURLヘルパーabout_homes_pathを与えますか? – Blankman