2010-11-30 21 views
6

私はコントローラー "Apps"を持っています。 1つのアクション「索引」で構成されます。今、私は「買い」と呼ばれる新しいアクションを追加したい:新しいレールの作成アクションが機能しません。

def buy 
    respond_to do |format| 
    format.html 
    end 
end 

私はビューにbuy.html.erbを追加しましたが、/アプリケーションへの参照時に/買い、私はメッセージを以下の取得:

Unknown action - The action 'show' could not be found for AppsController 
事前に

match '/apps/buy', :controller => 'apps', :action => 'buy' 

感謝:私はこれを追加した路線で

答えて

16

URLが標準/apps/:idルートでキャッチされていますが、私もあなたのルートにresources :appsがあると思いますか?ルートは、それらが定義されている順に実行している心の中で

match '/apps/buy', :controller => 'apps', :action => 'buy' 
resources :apps 

ベアを、その具体的なものは、一般的に先行する必要があります。

は、単に最初の購入ルートを置きます。

単純なアプローチ@Ryanが示唆するように、リソースを収集ルートを追加します

resources :apps, :collection => { :buy => :get } 
+4

代わりにあなたの 'リソースへの回収ルートとして' buy'アクションを追加します。apps'。 –

+0

@ライアン良い点は、それが望ましいでしょう。 –

+0

ありがとうございます! – Tronic

関連する問題