Ruby on rails Ruby属性元编程
我的Ruby on rails Ruby属性元编程,ruby-on-rails,ruby,Ruby On Rails,Ruby,我的用户具有以下属性: :step1_local :step2_local :step3_local ... ... :local1 :local2 :local3 我想基于同一模型上的另一组属性更改属性值。我想在用户上做一些处理映射,比如: def magic (user) user.local(1..3) = process(user.step(1..3)_local) end 当然,上面的代码不起作用(示例)。我不知道如何在不逐个检查每个属性的情况下动态地执行它。我想将一个处理映
用户
具有以下属性:
:step1_local
:step2_local
:step3_local
...
...
:local1
:local2
:local3
我想基于同一模型上的另一组属性更改属性值。我想在用户
上做一些处理映射,比如:
def magic (user)
user.local(1..3) = process(user.step(1..3)_local)
end
当然,上面的代码不起作用(示例)。我不知道如何在不逐个检查每个属性的情况下动态地执行它。我想将一个处理映射到另一个处理。有什么想法吗?您可以使用以下方法:
def magic(user)
(1..3).each do |n|
user.public_send("local#{n}=", process(user.read_attribute("step#{n}_local")))
end
end