我希望我的应用在服务器启动之前执行任务(从其他网站下载CSV文件并解析它们)。
我应该在哪个文件中放入此代码?(也许db/seeds.rb
?)
另外,关于如何使用RSpec进行测试的任何想法?
答案 0 :(得分:5)
initializers
文件夹是设置此任务的适当位置。
只需创建一个扩展名为.rb
的文件,其他所有内容都将在启动时执行。
答案 1 :(得分:2)
来自Rails Guides:
在极少数情况下,您的应用程序需要在加载Rails之前运行一些代码,请将其置于要求' rails / all'在config / application.rb。
答案 2 :(得分:1)
在initializers
内部文件夹中,可以创建任何.rb
文件,并可以在该文件中写入任何逻辑代码。它将在开始时执行。
但它可能会降低服务器启动速度,因为在您的情况下,csv下载和解析可能需要一段时间才能执行。
http://guides.rubyonrails.org/configuring.html#running-code-before-rails
答案 3 :(得分:0)
一种解决方案,这可能不对
在lib / tasks / say_hello_rake.rake
中namespace :sample do
task :your_task_name do
puts 'Hello my task ... '
end
end
在rails s之前
rake sample:your_task_name