2012-04-15 2 views
0

has_many 연관을 통해 다른 모델 (: 쿼리)과 관련된 모델의 특성 (: 테스트)에 대한 읽기 전용 액세스 권한을 갖고 싶습니다.메서드에서 관계형 콜백을 사용할 때의 오류

새 : 쿼리를 만들고 연결할 때 저장해야하는 관련 테스트 개체를 얻을 수는 있지만 관련있는 : before_create 메서드의 테스트 특성을 사용할 수 없습니다. private method 'test' called for nil:NilClass : 그 코드를 실행하려고하면

나는 "어떤"속성을 사용하여 연결 방법 ( @test = @query.test.whatever)를 사용할 수 있어야 내가이 API documentation에서 읽고 있어요에서

, 그러나 나는 다음과 같은 오류를 얻고있다.

: 쿼리는 관련이 ... belongs_to 관계에 테스트

나는 내 방식으로 테스트 개체의 인스턴스를 @Test = @ query.test.build을 시도했지만, 그 중 하나가 작동하지 않습니다 .

+0

두 모델에 대한 코드를 게시 할 수 있습니까? –

답변

1

이름 충돌이 발생했습니다. Ruby의 모든 객체에는 private 메소드 test이 있습니다.

+0

그게 내가 궁금해 한 건데 ... 건배. –

+0

"test"모델의 이름을 "testcase"로 변경했지만 여전히 동일한 오류가 발생합니다. 'private method 'testcase'는 nil : NilClass'를 호출했습니다. 그래서 성가신. 나는 바보 같은 짓을하고 있다고 확신하지만, 그것을 이해할 수는 없다 ... –

+0

모델의 이름을 변경하는 것만으로는 충분하지 않다. 당신은 당신의 협회 ('belongs_to : testcase')의 이름을 바꾸어야합니다. 또한 데이터베이스에'tests'라는 테이블이 있습니다. 이 문제도 수정해야합니다 (가장 간단한 방법은 모델 내에'set_table_name : testcases'라고 쓰십시오). – jdoe

관련 문제