모듈의 메서드 결과를 메모하려면 나쁜 연습으로 간주됩니까?모듈 내부에서 인스턴스 변수를 사용하는 것은 나쁜 습관입니까?
module FooHelper
def values_for_thingie
if some_condition && that_other_condition
{ a: "foo", b: "bar" }
else
{ a: "bar", b: "baz" }
end
end
end
이의이 레일보기가 "A"의 값을 얻기 위해 ..이 도우미 메서드 하나를 여러 번 호출하는 것입니다 가정 해 봅시다, 그리고 또 다른 가치를 얻을 :
는 내가 레일 도우미가 상상
: "B"...의는 또한 some_condition을 가정 해 봅시다의이 일을 해결할 수 있습니다우리가 한 번 이상 호출되는 해당하지 않도록 매우 복잡한 무언가를하는 방법입니다 ...
module FooHelper
def values_for_thingie
@values_for_thingie ||= \
if some_condition && that_other_condition
{ a: "foo", b: "bar" }
else
{ a: "bar", b: "baz" }
end
end
end
그러나이 인스턴스 변수가 FooHelper의 인스턴스와 아무 관련이 없기 때문에이 방법이 마음에 들지 않습니다. 실제로 제어 할 수는 없습니다. 이런 이유로 좋은 해결책이 아닌 것처럼 보입니다.