2013-07-22 3 views
0

그래서 기본 Rails 클래스를 확장하는 보석을 쓰고 있습니다. ActiveRecord :: Relation에서 이미 작동하도록했습니다. 제네릭 클래스에서 작동하고 싶다고 생각했지만 클래스 유형을 식별 할 수 없습니다. 현재기본 ActiveRecords 유형?

내가 가진 :

User.first.posts.test_method

작업, User.first.posts.class.name는 "액티브 :: 관계"그러나

을 ==, 나는이 방법을 알아낼 수 없습니다

User.test_method

User.class.name 그냥,883을 반환 :이 작업을 얻을 수 있습니다정말 도움이되지 않습니다.

저는 ActiveRecord :: Base로 확장하려했지만 행운이 없었습니다. 어떤 아이디어?

감사

답변

1

class ActiveRecord::Base 
    class << self 
    def this_should_work 
     "it does" 
    end 
    end 
end 

User.this_should_work 
=> "it does" 
+0

그것은 작동보십시오! 두 가지 질문 : 1) 저는 railties와 ActiveRecord :: Base.send를 사용하여 그것을 통합하려고합니다. 포함하는 방법에 대한 팁과 2) 왜 작동합니까? – Xiv

+0

Railtie를 도와 드릴 수는 없지만 ActiveRecord :: Base 클래스를 다시 열고 새로운 클래스 메서드를 정의하기 때문에이 방법이 효과적입니다. 일단 정의되면 ActiveRecord :: Base의 자식은 상속 때문에 메소드를 갖게됩니다. –