我正在重构我的代码,并且我希望在创建类的实例时将一些逻辑传递给参数。为了最好地描述问题,我将分享一些代码。
我有这种将对象作为参数的方法。
def common_attributes(klass)
klass.new(id: some_id, name: some_name, role_id: some_role.id)
end
我希望能够使用它来执行以下操作:
def common_attributes(klass)
klass.new(id: some_id,
name: some_name
role_id: some_role.id unless Module::class)
end
这是因为我的模块中有几个类。其中两个类采用相同的三个参数,即id
和name
,role_id
。另一个类有两个参数id
和name
。请注意,这些是示例值,实施可能没有意义,但重要的是要了解我遇到的问题。
这就是我将如何使用该功能:
common_attributes(MyModule::Myclass)
common_attributes(MyModule::DifferentClass)
common_attributes(MyModule::AnotherDifferentClass)
我将如何确保接受较少参数的另一个类接收所需的参数并省略它不需要的参数?
注意我无法编辑类以包含可选参数。