私はrubyを学習しており、rubyスクリプトでアクティブレコードを使用しているコードベースを学習しています。putsコマンドの後の.collectステートメントでの「&」の使用を理解していません:「終了した従業員の削除」。Terminated_idsはどのようなデータ構造ですか?
destroy_allメソッドはこのデータ構造を取得できますか?その奇妙なアンパサンドを使用した収集コマンドが何をするのかわかりませんか?
destory_allを使用して従業員IDのリストを終了したいと思います。しかし、私のデータ構造は次のようなハッシュです。[{:emp_id=> "2637"},{:emp_id=> "2637"},{:emp_id=> "2637"},{:emp_id=> "2637"}]
ルビー初心者を啓蒙してください。ありがとうございます!
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