"레일 웨이"를 어떻게하는지에 대한 질문이 있습니다. 공개 된 측면과 관리 인터페이스가있는 애플리케이션을 사용하는 방법에 대한 레일스 커뮤니티의 일반적인 합의는 무엇입니까?레일 웨이 - 네임 스페이스
이름 공간, 하위 도메인 또는 모두 무시합니까?
"레일 웨이"를 어떻게하는지에 대한 질문이 있습니다. 공개 된 측면과 관리 인터페이스가있는 애플리케이션을 사용하는 방법에 대한 레일스 커뮤니티의 일반적인 합의는 무엇입니까?레일 웨이 - 네임 스페이스
이름 공간, 하위 도메인 또는 모두 무시합니까?
실제로 관리 인터페이스에는 "레일 방식"이 없습니다. 실제로 많은 응용 프로그램에서 가능한 모든 솔루션을 찾을 수 있습니다. DHH는 (HTTP 기본 인증을 사용하여) 네임 스페이스를 선호한다고 암시했지만, 이는 공식적인 레일스 의견 중 하나가 아니라 단순한 함축으로 남아 있습니다.
즉, 최근에이 접근법으로 성공을 거뒀습니다 (네임 스페이스 + HTTP 기본).
이routes.rb :
map.namespace :admin do |admin|
admin.resources :users
admin.resources :posts
end
관리자/users_controller.rb : authenticate_or_request_with_http_basic
에
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
조건부은 HTTP를 트리거는 다음과 같습니다 프로덕션 모드의 기본 인증 또는 ?admin_http=true
을 임의의 URL에 추가하면 c 기능 테스트에서 테스트하고 개발 사이트를 탐색 할 때 수동으로 URL을 업데이트하십시오.
일부 작은 응용 프로그램에서는 관리자 인터페이스를 분리해야한다고 생각하지 않습니다. 일반 인터페이스를 사용하고 로그인 한 사용자에게 관리자 기능을 추가하기 만하면됩니다.
더 큰 프로젝트에서는 네임 스페이스를 사용했습니다. 하위 도메인을 사용하는 것은 나에게 어떤 이유로 느껴지지 않습니다.
나는 비슷한 질문을했다. Backend Administration in rails. 대답 중 하나가 네임 스페이스를 언급했으며 이것이 내가 구현 한 것입니다.
제 질문에 답변 해 주신 모든 분들께 감사드립니다. DHH가 후원하는 Rails Way 방식이 없기 때문에 네임 스페이스를 사용하는 것이 일치하는 것처럼 보입니다. :)
다시 한 번 감사합니다.
분명히 답장이 늦었지만이 질문에 대한 답변이 정말로 필요했습니다. 관리 영역을 쉽게 수행하는 방법은 무엇입니까?
최근에 사용할 수있는 것은 다음과 같습니다. Active Admin, Ryan Bates's great intro.
나는 이것을 싫어한다. 라우트는 "new_admin_user_path"와 같이 어색한 이름을 갖습니다. 관리자가 새로운 사용자를 생성하고 새로운 관리자를 생성하는 것은 아닙니다. "admin_new_user_path"라고합니다. 추한. 그것은 내가 틀린 것을 위해 네임 스페이스를 사용하고 있다고 의심하게 만듭니다. – hoff2