0
当前我需要将.CSV文件导入到我的应用程序中。在Ruby on Rails上运行脚本模块
我发现此代码(由以前的开发人员提供)将用作导入程序。但我不知道如何运行这个脚本。它与/任务不同吗?因为当我运行rake -T
它不显示。
require 'csv'
module Migrators
module Groups
class << self
def import!
Post.skip_callback :create, :before, :set_last_action_at
Post.skip_callback :create, :after, :create_memberhip_of_owner
CSV.foreach(Rails.root.to_s + '/db/lagacy/groups.csv', :headers => true) do |row|
group = Group.new(row.to_hash)
group.save(:validate => false)
end
# Update last_action_at to created_at
Group.where('last_action_at IS NULL').update_all('last_action_at = created_at')
Group.find_by_sql("SELECT setval('groups_id_seq', (SELECT MAX(id) FROM groups))")
Post.set_callback :create, :before, :set_last_action_at
Post.set_callback :create, :after, :create_memberhip_of_owner
end
end
end
end
你好胡安,谢谢你的回答。我明白,rake任务会更容易,但由于这是以前开发人员的旧代码,因此我无法更改或向应用程序添加任何代码。我需要使用旧的代码。 – Irwan 2014-10-01 09:32:37
好吧,所以把它添加到文件的第一行:#!/ usr/bin/env ruby并赋予执行权限并将其作为脚本运行 – 2014-10-01 09:34:27
Hello Juan,再次感谢您的回复。所以这些行会放在哪个文件上? – Irwan 2014-10-01 10:12:12