我正在尝试为 Redmine 编写一个导入 rakefile。它在轨道上使用红宝石。我不是 Rails 开发人员,但我们确实喜欢使用 redmine 进行项目和问题管理。
require 'rubygmes'
require 'fastercsv'
# csv issues import for redmine
# Will convert a csv into a issues bulkloader into redmine
# Column names
# row[0]=Nb Number,row[1]=Product,row[2]=Element,row[3]=Type,row[4]=Queue,
# row[5]=KeyWord,row[6]=Responsible,row[7]=Case Descriptions,row[8]=Days,
# row[9]=Planned Delivery,row[10]=Version
#
desc <<-END_DESC
Bulk loading of issues from a CSV file.
Available options:
* filepath => path to the text file.
* project => id or identifier of project
Example:
rake redmine:csv_import filepath="~/import.csv" project="askiavista"
END_DESC
namespace :redmine do
task :csv_import => :environment do
@firstrow = true
@count = 1
FasterCSV.foreach(ENV['filepath']) do |row|
if not firstrow
@i = Issue.new
@i.project = Project.find_by_name(ENV['project'])
# If not a feature it's a bug
if row[3].contains("SUG")
@i.tracker = Tracker.find_by_id(2)
else
@i.tracker = Tracker.find_by_id(1)
end
if row[4].contains("TOP PRIORITY")
@i.priority = Enumeration.find_by_id(7)
elseif row[4].contains("HIGH PRIORITY")
@i.priority = Enumeration.find_by_id(5)
elseif row[4].contains("MEDIUM PRIORITY")
@i.priority = Enumeration.find_by_id(4)
else
@i.priority = Enumeration.find_by_id(3)
end
@i.author = Users.find(5)
@i.subject = truncate(row[4], 50)
@i.description = row[4]
@i.status = IssuesStatus.find_by_id(1)
@i.save
count += 1
end
firstrow = nil
end
end
end
当我运行它时,我得到了这个错误:
(in /var/lib/redmine-0.7-dev)
rake aborted!
Don't know how to build task 'redmine:csv_import.rake'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1634:in `[]'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1930:in `invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1903:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1881:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1878:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
我环顾四周,看到其他用户遇到此问题,但没有找到解决方案。这应该是一个将数百个错误和功能导入 redmine 的快速脚本。
我已经更新了我的 rakefile。新错误。我认为这可能是我正在寻找的文本模式。我不确定 ruby 是否有“包含”方法来搜索关键字的字符串。