2013-02-09 3 views
0

나는 Rails 엔진 메커니즘을 이해하고, 프로젝트의 소스를보고있다.Devise :: Models incl

알다시피, 인증 및 자료를 지원할 모델에 devise이라는 메소드를 정의하는 모듈 Devise::Models이 있습니다. 지금까지 좋은 모든 것.

https://github.com/plataformatec/devise/blob/master/lib/devise/models.rb를 참조하지만이 모듈은 모델에 포함하는 방법을 알아 내기 위해 나에게 어렵다. 자동로드 또는 무언가입니까? 생성자를 사용하지 않고 새 모델을 만들면 도크가 어떻게 Devise :: Models 모듈을 액세스 가능하게 만들어서 devise :trackable, :stuffable을 직접 호출 할 수 있습니다.

그건 나에게 너무 어둡습니다. 모든 설명은 높게 평가 될 것입니다.

읽어 주셔서 감사합니다.

+0

, 나는 엔진을 만들려고 노력하고 있고 나는 고안의'유증 등의 방법을하고 싶습니다 몇 가지 추가 정보를 제공하려면 추적 가능한 : rememberable' 내 호스트 프로젝트의 모델에 사용할 것 – Codii

답변

0

남자, 나는 어리 석다. 나는 많은 시간 동안 왜 Devise::Models 모듈이 모든 모델에 포함되어 있는지를 알기 위해 NoMethod 오류를 발생시키지 않고 devise 메서드를 호출 할 수있었습니다.

마지막으로 대답을 찾았습니다.

이 모듈은 귀하의 장비 설치가 사용하는 orm 파일에 포함되어 있습니다. 초기화하지 않은 상태에서이 작업을 수행하면됩니다. 당신이 경우

require 'orm_adapter/adapters/mongoid' 

Mongoid::Document::ClassMethods.send :include, Devise::Models 

희망이 당신의 엔진 같은 메커니즘을 제공하는 당신에게 영감을 것입니다 단순히 않습니다 (내 경우 mongoid.yml을) 파일이 질문에 포함 된 다음

(오른쪽 ORM 어댑터 파일을 선택) .

감사