2016-12-24 2 views
0

그래서 price라는 열이있는 항목이라는 모델이 있습니다. 열이 모델 내부의 인스턴스 변수로 저장되지만 메서드는모델 내부에서 속성에 액세스하는 방법

def price 
    @price 
end 

을 반환한다고 가정했습니다. 그래서 내 질문은 내가 어떻게 모델 내부에서 가격에 액세스합니까?

추가 정보를 원하시면

처럼,이 내가 스페셜 확인하고 특수가 활성화되어있는 경우 가격을 변경하고하지 않을 경우 혼자 떠나는 방법 가격을 할 수 있도록 항목 때때로 스페셜을 가지고 뭔가를하고 내 이유
def price 
    check_for_special 
    @price 
end 
+0

새로 작성하지 말고 원래 질문을 편집하십시오. – Iceman

답변

1

ActiveRecord는 데이터베이스 필드와 연결된 setter 및 getter 메소드를 자동으로 생성합니다. price은 같은 이름의 필드에 대한 getter 메서드입니다.

price 메서드를 추가하면 ActiveRecord로 만든 메서드를 덮어 썼습니다. 기존 방법을 덮어 쓰면 super을 호출하여 원래 방법에 액세스 할 수 있습니다. 그래서 당신이 위해 할 수있는 : 당신은 일반적으로 항상 다른 방법을 호출하지 않고 그냥 가격 값을 얻는 방법을 필요로하는

def price 
    check_for_special 
    super 
end 

그러나, 나는 그 일을 권장하지 것입니다. 따라서

def price_with_check 
    check_for_special 
    price 
end 
관련 문제