문제

"The Rails Way" 작업을 수행하는 방법에 대한 질문이 있습니다.공개적인 측면과 관리 인터페이스가 있는 애플리케이션을 수행하는 방법에 대한 Rails 커뮤니티의 일반적인 합의는 무엇입니까?

네임스페이스, 하위 도메인을 사용하지 않거나 아예 사용하지 않으시나요?

도움이 되었습니까?

해결책

실제로 관리 인터페이스에 대한 실제 "Rails 방식"은 없습니다. 다양한 애플리케이션에서 가능한 모든 솔루션을 찾을 수 있습니다.DHH는 HTTP 기본 인증을 사용하는 네임스페이스를 선호한다고 암시했지만 이는 공식적인 Rails 의견이 아닌 단순한 의미로 남아 있습니다.

즉, 나는 최근에 이 접근 방식(네임스페이스 + HTTP 기본)으로 큰 성공을 거두었습니다.다음과 같습니다.

경로.rb:

map.namespace :admin do |admin|
  admin.resources :users
  admin.resources :posts
end

관리자/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 프로덕션 모드에서 또는 추가할 때 HTTP 기본 인증을 트리거합니다. ?admin_http=true 기능 테스트에서 테스트할 수 있으며 개발 사이트를 탐색할 때 URL을 수동으로 업데이트할 수 있습니다.

다른 팁

일부 소규모 애플리케이션에서는 관리 인터페이스를 분리할 필요가 없다고 생각합니다.일반 인터페이스를 사용하고 로그인한 사용자를 위한 관리 기능을 추가하면 됩니다.

더 큰 프로젝트에서는 네임스페이스를 사용합니다.어떤 이유로든 하위 도메인을 사용하는 것이 나에게 적합하지 않다고 생각합니다.

제가 좀 비슷한 질문을 했는데요. 레일의 백엔드 관리.답변 중 하나가 네임스페이스를 언급했고 그것이 제가 구현한 것입니다.

내 질문에 답변해 주신 모든 분들께 감사드립니다.DHH가 후원하는 Rails Way 접근 방식이 없기 때문에 원하는 경우 네임스페이스를 사용하는 것이 합의된 것 같습니다.:)

다시 한번 감사드립니다!

확실히 답변이 늦었지만 이 질문에 대한 답변이 꼭 필요했습니다.관리 영역을 쉽게 수행하는 방법은 무엇입니까?

요즘 사용할 수 있는 것은 다음과 같습니다. 활성 관리자, 와 함께 라이언 베이츠의 훌륭한 소개.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top