在我的应用程序中,我有两个管理持久性的服务对象:
searchBar.setImage(UIImage(named: "tempUser")!,
forSearchBarIcon: UISearchBarIcon.Search,
state: UIControlState.Normal)
另一个:
class UpdateProductService
<...>
def update_product
product_in_db.attributes = product_params
product_in_db.save! if product_in_db.changed?
end
<...>
end
这些对象都使用属性'product_params'的哈希值和其他一些属性哈希值。像这样:
class CreateProductService
<...>
def create_product
self.product = account.products.create!(product_params)
end
<...>
end
这些哈希值现在存储在两个服务中并相互复制。问题是:我可以在哪里放置此属性和其他属性值(在哪个文件中,在app-tree中的哪个位置)从我的服务对象中调用它们,并将一些“product”作为参数。
答案 0 :(得分:0)
这对我来说似乎是一个问题。将其放在app/services/concerns
(或app/service_objects/concerns
,无论您的服务是什么)。
module Concerns
module WithProductParams
extend ActiveSupport::Concern
def product_params
{
archived: product.archived,
available: product.available,
category_id: product.category_id,
short_description: product.short_description,
description: product.description,
title: product.title,
}
end
end
end
然后像这样使用它:
class CreateProductService
include Concerns::WithProductParams