gpt4 book ai didi

ruby-on-rails - 如何修复 Rake 任务中的 "uninitialized constant"

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:03 25 4
gpt4 key购买 nike

我在做的时候遇到了问题:

namespace :xaaron do
task :get_roles do
roles = Xaaron::Role.all
puts roles
end

task :get_role, [:name] do |t, args|
role = Xaaron::Role.find(args[:name].parameterize)
puts role
end
end

第一个任务可以正常工作。我什至可以添加 binding.pry 并运行 Xaaron::Role 并获取有关 Roles 的信息。但是第二个任务失败了:

NameError: uninitialized constant Xaaron::Role

我在我的主应用程序中运行每个任务,因为这些任务在一个引擎中,使用:

bin/rake xaaron:get_roles` and `bin/rake xaaron:get_role

我可以在使用该引擎的主应用程序中运行 bin/rails c 并运行 Xaaron::Role 并获取有关 Roles 表的信息。

为什么第二个失败但第一个没有?是否有带参数的范围?

最佳答案

我不确定为什么两者都有效,但如果这是 Rails 而那些是 Rails 模型,您的任务应该取决于环境:

task :get_roles => [ :environment ] do

根据 :environment 任务,它首先加载 Rails。

另见:What's the 'environment' task in Rake? .

关于ruby-on-rails - 如何修复 Rake 任务中的 "uninitialized constant",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27431532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com