그래서 나는 내가 속한위한 그러나 같은 일을 달성하기 위해 노력하고있어레일
def custom_getter
return self[:custom_getter] || some_default_value
end
를 사용하여 액티브 오브젝트의 속성에 대한 기본 게터를 재정의하는 방법을 알고 협회. 예를 들어.
class Foo < AR
belongs_to :bar
def bar
return self[:bar] || Bar.last
end
end
class Bar < AR
has_one :foo
end
내가 말할 때 :
f = Foo.last
내가 그 연관이 아직 존재하지 않는 경우 오히려 무기 호보다, 마지막 줄을 반환 f.bar
방법을 가지고 싶습니다.
그러나 이것은 작동하지 않습니다. 그 이유는 self [: bar]가 항상 정의되지 않기 때문입니다. 실제로는 self [: bar_id]입니다. 그러나이 항상 바 이미 확실히 적합하지 않은, 인출 된 경우에도 DB를 호출을 만들 것입니다
def bar
if self[:bar_id]
return Bar.find(self[:bar_id])
else
return Bar.last
end
end
:
내가 좋아하는 순진한 뭔가를 할 수 있습니다.
누군가는 belongs_to 속성이 한 번만로드되고 설정되지 않은 경우 기본값이있는 관계를 갖는 방법에 대한 통찰력을 가지고 있습니다.
당신은 그와 루프가없는 D : – shingara
아니요, "bar"의 새 이름 인 "original_bar"를 호출합니다. –
매력처럼 일했습니다! 고마워요 – brad