Ruby on rails 在自定义rake任务中包括rails datetime助手
我想创建一个rake任务来填充产品的细节,但是产品必须是随机的,以便以后能够根据日期对其进行排序。我想将框架提供的datehelper包含在其中,但我似乎对此一无所知。如何做到这一点。我的定制rake任务如下所示Ruby on rails 在自定义rake任务中包括rails datetime助手,ruby-on-rails,Ruby On Rails,我想创建一个rake任务来填充产品的细节,但是产品必须是随机的,以便以后能够根据日期对其进行排序。我想将框架提供的datehelper包含在其中,但我似乎对此一无所知。如何做到这一点。我的定制rake任务如下所示 namespace :db do desc "Filling the data with products" task :fill_products do [{:name => "1 Galon milk", :price => 2.99, :release
namespace :db do
desc "Filling the data with products"
task :fill_products do
[{:name => "1 Galon milk", :price => 2.99, :released => Time.now.to_datetime},
{:name => "Oh's Cereal'", :price => 3.95, :released => 1.year.ago},
{:name => "Red T-Shirt", :price => 12.49, :released => 2.years.ago},
{:name => "Settler's of Catan'", :price => 29.95, :released => 2.months.ago},
{:name => "Video Game Disc", :price => 29.95, :released => 5.moths.ago},
{:name => "DVD Player", :price => 79.99, :released => 88.days.ago},
{:name => "Oak Coffee Table", :price => 223.99, :released => 499.days.ago},
{:name => "Video Game Console", :price => 299.95, :released => 982.days.ago},
{:name => "Black Leather Couch", :price => 399.99, :released => 1092.days.ago}
].each do |attr|
Product.create!(attr)
end
end
end
但是,当我为任务运行rake命令时,它给我的错误是1:Fixnum的
未定义的方法'year',我想这个错误是由于它无法访问rails提供的date helper方法。因此,我如何包含帮助程序以启用支持。尝试使您的任务依赖于:environment Rails的任务:
task :fill_products => :environment do
# ...
end
让我们看看会发生什么…试试看,我认为会很好,首先在应用程序的自动加载路径中添加lib文件。rb
config.autoload_paths += %W(#{config.root}/lib)
然后做以下事情
task :fill_products => :environment do
# ...
end
仅供参考,您在第八行拼错了5.moths.ago。也不起作用。因此,我必须创建代码来通过db/seeds.rb进行种子设定