我正在学习 ruby,并且正在研究在 ruby 脚本中使用活动记录的代码库。我不明白在 puts 命令之后的 .collect 语句中使用“&”:“删除已终止的员工”。Terminated_ids 是什么样的数据结构?
destroy_all 方法可以采用这种数据结构吗?不知道那个奇怪的&符号的收集命令是什么?
我想也使用 destory_all 终止员工 ID 列表。但我的数据结构是如下哈希:[{:emp_id=> "2637"},{:emp_id=> "2637"},{:emp_id=> "2637"},{:emp_id=> "2637"}]
请指教一个ruby noob..谢谢!
class Maker < ActiveRecord::Base
host = 'superman.com'
port = 2000
sid = 'ASID'
Maker.establish_connection(
:adapter => 'oracle_enhanced',
:database => "someDB",
:username => 'user',
:password => 'passer'
)
set_table_name 'WORK.EMPS'
end
puts 'removing terminated employees'
Terminated_ids = Maker.where('term_date IS NOT NULL').collect(&:emp_id) # ???
OtherModel.destroy_all(:emp_id => Terminated_ids)
puts 'removing employees who have been deleted'
OtherModel.find_each do |othermodel|
if othermodel.email[-12,12] != '@ahsmsweh.com' #do not remove employees with an @ahsmsweh.com email
pbx_record = Maker.find_by_emp_id(othermodel.emp_id)
if pbx_record.nil?
puts "destroying missing record for #{othermodel.email}"
othermodel.destroy
end
end
end