我有一个Ruby on Rails应用程序(ruby 1.8.7; rails 2.3.18)。我有一个自定义的 rake任务(基本上是一个ruby程序),它比较两个数组,然后将它们的差异存储在第三个数组中(arr3 = arr1 - arr2)。在应用程序中有一个用户模型。我有一个数据库脚本,可以从模型/ db中挂起(删除)用户。所以我想在创建arr3
之后从rake任务中调用这个数据库脚本。我想运行此脚本,直到arr3
中的所有元素都被删除。这些数组给出了两个用户列表之间的区别。
任何人都可以指导我吗?如何从rake任务调用数据库脚本?任何事情都会有很大的帮助。
rake文件如下:
namespace :db do
arr1 = Array.new
arr2 = Array.new
arr3 = Array.new
desc "load data from csv"
task :load_is_data do
require 'fastercsv'
CSV.foreach("C:/Sites/rails_project/demo_app/list1.csv") do |row|
arr1 << row[0]
end
CSV.foreach("C:/Sites/rails_project/demo_app/list2.csv") do |row|
arr2 << row[0]
end
arr3 = arr1-arr2
puts "Inactive: #{arr3}"
#CODE TO BE ADDED, TO CALL DATABASE-SCRIPT
end
end
谢谢, Bhargav
答案 0 :(得分:0)
你可以使用任何以下宝石。
gem "populator", "~> 1.0.0"
gem 'faker'
gem "random_data", "~> 1.6.0"
代码将是这样的。
admin = AdminUser.create :email => 'xxxxxx@gmail.com', :password => 'xxxx1234', :password_confirmation => 'xxxx1234', :role => 'SuperAdmin', :name => 'SuperAdmin'
puts 'SuperAdmin created: ' << admin.email
10.times do |index|
User.create! :fname => Random.firstname,
:lname => Random.lastname,
:email => Random.email,
:password => 'dcs1234',
:password_confirmation => 'dcs1234'
end