「TheRailsWay」のやり方について質問があります。公開側と管理インターフェースを備えたアプリケーションを使用する場合、その方法に関するRailsコミュニティの一般的なコンセンサスは何ですか?
名前空間、サブドメイン、またはそれらを完全に放棄しますか?
「TheRailsWay」のやり方について質問があります。公開側と管理インターフェースを備えたアプリケーションを使用する場合、その方法に関するRailsコミュニティの一般的なコンセンサスは何ですか?
名前空間、サブドメイン、またはそれらを完全に放棄しますか?
実際には、管理インターフェースに真の「Rails 方式」はありません。多くのアプリケーションで考えられるすべてのソリューションを見つけることができます。DHH は名前空間 (HTTP 基本認証を使用) を好むことをほのめかしていますが、それは単純な意味にとどまり、Rails の公式見解の 1 つではありません。
そうは言っても、私は最近、そのアプローチ (ネームスペース + HTTP Basic) で大きな成功を収めています。次のようになります。
ルート.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
アプリケーション.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
条件 onauthenticate_or_request_with_http_basic
は、本番モードで、または任意の URL に追加するときに HTTP 基本認証をトリガーする?admin_http=true
ため、機能テストでテストしたり、開発サイトを閲覧するときに URL を手動で更新したりできます。
一部の小規模なアプリケーションでは、管理インターフェイスを分離する必要はないと思います。通常のインターフェースを使用して、ログインしているユーザーの管理機能を追加するだけです。
大規模なプロジェクトでは、名前空間を使用します。サブドメインの使用は、何らかの理由で私には適切ではありません。
返信が遅れるのは確かですが、この質問に対する答えが本当に必要でした: 管理領域を簡単に行うには?
最近使用できるものは次のとおりです: Active Admin、Ryan Bates の素晴らしいイントロ付き。
私の質問に答えてくれたみんなに感謝します。DHHが後援するRails Wayアプローチがないため、必要に応じて名前空間を使用することがコンセンサスのようです。:)
もう一度、ありがとう!