データ入力の際、必要最低限の情報のみをCSVに入力し、RUBYファイルに変換しようと思う。
後にはRailsの中に組み込んだり等考えているが、今の所はRubyを手動で実行しCSV→RUBYに変換する方法をメモする。
例えば、ツイッターの情報をまとめたいとする。
CSVにて「アカウント名,account,アカウントのコメント」の情報を入力した時に、Rubyでは「Twitter.create(:name => 'アカウント名', :url => 'https://twitter.com/account', :comment => 'アカウントのコメント')」のという形式で受け取りたいとする。
こちらは、Seeds.rbでrailsのdbに情報を入力することを前提としているため、ご自身の受け取りたい形式、情報個数によって変更する必要がある。
change.rb
require 'csv'
csvdatas = CSV.read("before.csv")
file = File.open('after.rb', 'w')
csvdatas.each do |csv|
csv[0] = 'Twitter.create(:name => ' + "'" + csv[0] + "'"
csv[1] = ', :url => \'https://twitter.com/' + csv[1] + "'"
csv[2] = ', :comment =>' + csv[2] + "\')" + "\n" #要改行
file.write csv.join #csvをつなげてfileに書き込む。
end
あとは入力データをCSVで作成し、実行するだけ。
$ ruby change.rb
これでafter.rbというファイルが作成されます。