需要给一个固定的数据结构中插入一个固定的数组数据
由于ruby具有hash遍历
搜了一下api
hash = Hash.new %w(cat dog wombat).each_with_index {|item, index| hash[item] = index } hash #=> {"cat"=>0, "dog"=>1, "wombat"=>2}但是这样之后就报错了
- inserting into
Hash
while enumerating it raises an exception
于是试一下把key,value单独分开,居然没报错,成功了,代码如下:
#设置奖励信息 def set_award_info(task_params,award_params)
if task_params[:goods_id].to_i == Sequel::Model::TABLE
# 更新sys_task_award_account
award_params[:account].split(/;/).each do |params|
task_award = {}
task_award[:account_id] = nil
task_award[:award_type] = nil
task_award[:base_amount] = nil
task_award[:min_amount] = nil
task_award[:max_amount] = nil
task_award[:award_equation] = nil
params = params.split(/:/)
task_award.each_with_index do |(key,value),index|
task_award[key] = params[index]
end
task_award[:task_id] = task_params[:task_id]
task_award[:create_time] = Time.now
task_award[:update_time] = Time.now
sys_task_award_account = CaiQiuService::CoreDao::SysTaskAwardAccount.new
sys_task_award_account.save_hash(task_award)
end
end
#其他类型 TODO
end