2011-09-01 1 views
1

belongs_to 관계에서 연결 확장을 수행 할 수 있습니까?belongs_to의 Activerecord 연결 확장

내가 모듈을 사용하여 할 수 있지만 유지하기 위해 노력했다

내가 전화 했어 방법은 개인이라고 말했다되는 :

module TestExtension 
    def test 
    puts 'test successful' 
    end 
end 

class Question < ActiveRecord::Base 
    belongs_to :user, extend: TestExtension 
end 

는 방법은 개인 것을 불평하지만 내가 그것을 실행할 때마다

q = Question.first 
q.test 
# => NoMethodError: Attempt to call private method `test' 

belongs_to에서 AR 확장을 수행 할 수 있는지 여부가 100 % 명확하지 않습니다. Rails 3.0.7에서는 정상적으로 작동했지만 현재는 3.1.0에서 실패했습니다.

+0

어디서 TestExtension 모듈을 넣으시겠습니까? lib 디렉토리의 새 파일에? – Coderama

답변

0

이것은 아직 해결되지 않은 known issue의 3.1.0입니다. 기본적으로 3.1.0의 새로운 연결 디자인은 처음에는 지원되는 기능이 아니기 때문에 belongs_to 연결 확장을 지원하지 않습니다. 그러나이 문제는 아직 공개되어 있으므로 향후 해결 될 수 있습니다. 원할 경우 음성 지원 문제에 대해 의견을 제시해야합니다.

또한 개인 메서드 오류가 발생하는 경우 extend: TestExtension 부분이 없어도 얻을 수 있습니다. 나는 #test이 모든 ActiveRecord 개체에 대한 개인적인 방법이라고 믿습니다.

+0

매우 도움이됩니다 - 두 가지 점 모두에 대해 감사드립니다. .test 제한에 대해서는 전혀 몰랐습니다. –