0

我有一个 Ruby on Rails 应用程序(ruby 1.8.7;rails 2.3.18)。我有一个自定义的rake 任务(基本上是一个 ruby​​ 程序),它比较两个数组,然后将它们的差异存储在第三个数组中(arr3 = arr1 - arr2)。在应用程序中有一个用户模型。我有一个数据库脚本,可以从模型/数据库中暂停(删除)用户。所以我想在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

谢谢, 巴尔加夫

4

1 回答 1

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
于 2013-04-26T08:22:01.410 回答