通过动态创建ruby对象/变量来执行DRY代码

时间:2012-08-29 16:08:05

标签: ruby ruby-on-rails-3 dry

我对Ruby很新。我有几行代码我想干它们。

foo_attributes = params[:foo]
params.delete(:foo)
bar_attributes = params[:bar]
params.delete(:bar)

我正在尝试做这样的事情

["foo", "bar"].each do |par|
  par_attribute = params[:par]
  params.delete(:par)
end

稍后在我的方法中,我需要调用传递对象foo_attribute,bar_attribute的其他方法。

像:

call_foo_method(foo_attribute)

我怎样才能在红宝石中做到这一点?

1 个答案:

答案 0 :(得分:0)

为什么不保留params var?那么你根本不需要分配任何其他变量吗?

你也可以通过组合两行来干掉第一个(和第二个例子):

foo_attributes = params.delete(:foo)
bar_attributes = params.delete(:bar)