パフォーマンスが重要でない場合はこの1つが良くなります。
form_params = {}
['tid', 'qid', 'pri', 'sec', 'to_u', 'to_d', 'from', 'wl'].each do |v|
form_params[v] = eval(v)
end
それらの名前は、実際のメソッドであれば、あなたがsend
より高速でeval
を置き換えることができます。
form_params[v] = send(v.to_sym)
(更新)アンinject
を使用する代わりの(よりエレガントな)方法:
あなたは文字列リテラルではなく、あなたのための鍵などの記号が必要な場合は
form_params = MoreOpenStruct.new
form_params.tid = tid
form_params.qid = qid
form_params.pri = pri
form_params.sec = sec
form_params.to_u = to_u
form_params.to_d = to_d
form_params.from = from
form_params.wl = wl
form_params_hash = form_params._to_hash
#=> { :tid => tid, :qid => qid, etc }
:
clunkinessの正確な味わいがDRYと呼ばれ、https://en.wikipedia.org/wiki/Don't_repeat_yourself。 –