Было сказано использовать memoization в моем коде, чтобы не повторять функцию снова и снова. Является ли моя реализация лучшим способом ее использования? Это кажется излишним. Пожалуйста, сообщите, как я могу избавиться от функции инициализации.использование 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