私のコードでメモを使って、何度も何度も関数を呼び出さないように言われました。私の実装はそれを使うのに最も良い方法ですか?それは冗長なようだ。どのように私は初期化機能を取り除くことができます助言してください。私のコードでmemoizationを使う
class OrderService
def initialize
@current_orders = current_orders
end
def orders_acceptance
@current_orders.
with_statuses(:acceptance).
select do |order|
order.acceptance? if order.shopper_notified_at?
end
end
def orders_start
@current_orders.
with_statuses(:start).
select do |order|
order.start?
end
end
private
def current_orders
@current_orders ||= begin
Order.includes(:timestamps).
with_statuses(
[
:acceptance,
:start
]
)
end
end
end
正直なところ私はこの特定のケースが多くの改善を提供しているとは思わないが、あなたのメソッドはアクティブなレコード関係を返すが、これは私が間違っているとは思わないが、それはこの部分でとても役に立つと思います。 –
'with_statuses'とは何ですか? –
ここを見てください:https://codereview.stackexchange.com/ – Felix