【问题标题】:Within a helper function inside a rake task, how do I access the name of that task?在 rake 任务内的辅助函数中,我如何访问该任务的名称?
【发布时间】:2023-03-10 16:53:01
【问题描述】:
我有一个 rake 任务,它为我的 Web 应用程序播种数据。我有两个 rake 任务:“production_data”和“demo_data”。我还有一个名为create_admin_login 的函数。我想在create_admin_login 中放置一个条件开关,以查看哪个任务正在调用它并设置适当的电子邮件值。
我不知道如何知道:task 正在被调用。我该怎么做呢? (我也意识到这可能不是编写 rake 文件的正确方法......我应该有一个名为 create_demo_admin_login 的单独函数吗?这不是很干。)
【问题讨论】:
标签:
rake
rake-task
rakefile
【解决方案1】:
不知道过了这么久对提问者有没有帮助,但是对于其他人,谁会来这里搜索。
如何知道哪个任务正在调用 create_admin_login(或者换句话说 - 如何知道在 rake 中执行/调用了哪个任务):
def create_admin_login
foo = Rake.application.top_level_tasks.join(', ')
if /production_data/ =~ foo
# or exclude .join(', ') and make if statement with: foo.include?('production_data')
# seed one data
else
# seed other data
end
end