0
大家都知道,当一些rake任务启动时,下列步骤发生:在耙任务使用运行Rails应用程序实例
Rails的负载(新
Rails::Application
实例初始化)然后耙任务运行
因此,Rake任务和rails服务器的rails应用程序实例会有所不同。 我想知道,是否有可能与Rake任务或rails控制台共享rails服务器实例? 这可能是解决方法,如果我想要一个rake任务,即修改运行rails server应用程序中的类变量或类实例变量。
在我运行的应用程序,我有一个类的实例变量
class User
@some_flag = false
class << self
def some_flag
@some_flag
end
def some_flag=(val)
@some_flag = val
end
end
end
在我耙任务的模型,即定在后台运行,我想更新该变量:
namespace :user do
desc "update flag"
task update: :environment do
User.some_flag = ENV['flag']
end
end
,然后在应用程序中使用更新的值
你能否详细说明一下你为什么要做什么以及为什么要这么做,它可能会在不同的方向上寻找解决方案。 –
如果你想这样做,我认为使用环境变量或在数据库上保存这些标志会更好。 – diofeher
是的,我猜这是不可能的,最好使用数据库 –