如果我想記憶一個模塊中某個方法的結果,是否認爲是不好的做法?在模塊中使用實例變量是不好的做法嗎?
想象我有一個導軌幫手:
module FooHelper
def values_for_thingie
if some_condition && that_other_condition
{ a: "foo", b: "bar" }
else
{ a: "bar", b: "baz" }
end
end
end
假設Rails視圖是要多次調用這個輔助方法..一個拿到了「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的一個實例無關。它不是真的在它的控制之下。所以出於這個原因,看起來這不是一個好的解決方案。