30

「TheRailsWay」のやり方について質問があります。公開側と管理インターフェースを備えたアプリケーションを使用する場合、その方法に関するRailsコミュニティの一般的なコンセンサスは何ですか?

名前空間、サブドメイン、またはそれらを完全に放棄しますか?

4

4 に答える 4

41

実際には、管理インターフェースに真の「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 を手動で更新したりできます。

于 2008-09-23T10:05:39.077 に答える
5

一部の小規模なアプリケーションでは、管理インターフェイスを分離する必要はないと思います。通常のインターフェースを使用して、ログインしているユーザーの管理機能を追加するだけです。

大規模なプロジェクトでは、名前空間を使用します。サブドメインの使用は、何らかの理由で私には適切ではありません。

于 2008-09-23T05:47:15.577 に答える
0

返信が遅れるのは確かですが、この質問に対する答えが本当に必要でした: 管理領域を簡単に行うには?

最近使用できるものは次のとおりです: Active AdminRyan Bates の素晴らしいイントロ付き。

于 2011-10-06T17:53:32.513 に答える
0

私の質問に答えてくれたみんなに感謝します。DHHが後援するRails Wayアプローチがないため、必要に応じて名前空間を使用することがコンセンサスのようです。:)

もう一度、ありがとう!

于 2008-09-23T15:47:33.000 に答える