「The Rails Way」を実行する方法について質問があります。公開側と管理インターフェイスを備えたアプリケーションでは、Railsそれを行う方法についてのコミュニティ?
名前空間、サブドメイン、またはそれらを完全に放棄しますか?
実際には、管理インターフェイスに実際の「レールウェイ」はありません。多くのアプリケーションで考えられるすべてのソリューションを見つけることができます。 DHHは、(HTTP基本認証を使用した)名前空間を好むことを示唆していますが、それは単純な意味であり、公式のRails Opinionsの1つではありません。
そうは言っても、私は最近、そのアプローチ(名前空間+ HTTP基本)で良い成功を収めました。次のようになります。
ルート.rb:
map.namespace :admin do |admin|
admin.resources :users
admin.resources :posts
end
admin/users_controller.rb:
class Admin::UsersController < ApplicationController
before_filter :admin_required
# ...
end
application.rb
class ApplicationController < ActionController::Base
# ...
protected
def admin_required
authenticate_or_request_with_http_basic do |user_name, password|
user_name == 'admin' && password == 's3cr3t'
end if Rails_ENV == 'production' || params[:admin_http]
end
end
authenticate_or_request_with_http_basic
の条件は、本番モードで、または任意のURLに?admin_http=true
を追加すると、HTTP基本認証をトリガーするため、機能テストでテストしたり、開発サイトを参照しながらURLを手動で更新したりできます。 。
一部の小さなアプリケーションでは、管理インターフェイスを分離する必要はないと思います。通常のインターフェースを使用して、ログインしたユーザーの管理機能を追加するだけです。
より大きなプロジェクトでは、名前空間を使用します。サブドメインを使用することは、何らかの理由で私には正しく感じられません。
私の質問に答えてくれたみんなに感謝します。 DHHが後援するRails Wayアプローチ。:)がないため、必要に応じて名前空間を使用することがコンセンサスのようです。
繰り返しになりますが、ありがとうございました。
確かに返信が遅れていますが、私はこの質問への答えが本当に必要でした:管理領域を簡単に行う方法は?
最近使用できるものは次のとおりです。 Active Admin 、with Ryan Batesのすばらしいイントロ 。