2012-02-12 21 views
6

私はROR 3.2で簡単なCMSを持っています。このフォルダ方式に :|コントローラ|名前空間adminのコントローラをサブフォルダとして追加する

アプリ私のコントローラ

しかし、私はあまりにもいくつかのコントローラを持っている可能性があり、「管理者」のセクションを持っていると思いました。 作成しました

rails generate controller admin/Users

アプリ|コントローラ|管理&私の管理コントローラ

はので、私のファイルがある:私は私のルートで

users_controller.rb 
class Admin::UsersController < ApplicationController 

    def index 
    render(:text => "sou o index!") 
    end 

    def list 
    render(:text => "sou o list") 
    end 

end 

namespace :admin do 
    resources :users 
    end 

match ':controller(/:action(/:id))(.:format)' 

イムレールに、私は解決策を見つけ出すカント新しいです。どこでも見つけることができます。

問題は、私はアセスを行う試す です:

http://localhost:3000/admin/users/list

と私はこのエラーを取得:

Unknown action The action 'show' could not be found for Admin::UsersController

+0

実際の問題は何ですか? –

+0

私は質問を更新しました! –

+0

"list"アクションは何をする予定ですか?標準のRails RESTアクションではありません。 –

答えて

4

あなたがRailsののRESTfulなルーティングがデフォルトでどのように動作するかを理解していないように見えます。 Resource Routing section of the Rails Guidesを読むことをお勧めします。デフォルトでは、ルートにresourcesを使用すると、特定のモデルレコードを表示するために使用されるアクションがshowとなります。あなたはその中程度のcustomize this behaviorあなたはURLを変更することができ、そのモデルでshowアクションではなく、メソッド名:

resources :users, :path_names => { :new => 'list' } 

あなたがRESTfulなルーティングを使用しようとしている場合(あなたがすべき)、あなたをデフォルトルート(match ':controller(/:action(/:id))(.:format)')を削除する必要があります。また、端末からいつでもrake routesを実行すると、現在のルーティング設定の詳細を表示できます。

+1

これは意味があります。私はそれについていくつかの情報を読んでいます。それは私も興味があったからです。ありがとう。 –

+1

これらのガイドは本当に便利でした。すべて期待通りに走っています。おかげで –

+0

聞いてうれしい、ガイドはいくつかの場所で非常に深く行くことはありませんが、非常に良い出発点です。 –

関連する問題