私は管理者用コントロールパネルを構築しています(しようとしています;))。
私はRuby on Rails でのバックエンド管理を見てきましたが、提案されているように、管理者をチェックしてレイアウトなどを設定する Admin::AdminController を作成しようとしています。
しかし、 /admin を /admin/dash にルーティングするルートも設定しようとしています
http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing、特にセクション 2.6を読んだ私の理解から、
管理者::管理者コントローラ
Admin は名前空間、AdminController は ApplicationController のサブクラス (拡張機能?、インターフェースの実装?) であるコントローラーであることをレールに伝えます。これは、コントローラーが app/controllers/admin/ に存在し、admin_controller.rb と呼ばれることを意味します。
しかし、私が欲しいのは
管理者コントローラ
次のようなエラーが表示されます。
uninitialized constant Admin::Controller
ルートの私のコード:
match :admin, :to => 'admin/admin#dash'
namespace :admin do
# Directs to /admin/resources/*
match '/dash', to: '#dash'
resources :users, :pictures
end
コントローラーを app/controllers/admin、app/controllers との組み合わせに配置しました
class Admin::AdminController < ApplicationController
before_filter :admin_user
# / ** STATIC ADMIN PAGES ** /
def dash
end
end
またはクラス AdminController < ApplicationController。
編集:ルーティングについての私の理解かもしれません。例:
namespace :admin do
get "/dash"
対。
namespace :admin do
match "/dash" to "admin#dash"
対。
namespace...
match "/dash" to "#dash"
最初のものは、コントローラーを介してダッシュを表示できるようにします。つまり、管理者/ダッシュはによって制御されます
AdminController < ApplicationControler
def dash
end
2 つ目は admin/admin/dash を admin/dash にルーティングしますか?
TL/DR: 私の混乱は、構文や RESTful な慣行、あるいは Ruby でのクラス/オブジェクトの継承についての理解が不十分であることが原因だと思います。
この n00b を助けてくれてありがとう。:)
副次的な質問: 誰かがスポイラーのように開くまでコードを最小化するように変更して、さらに情報を見つけて追加した場合に混乱しないようにすることはできますか?