当我执行以下操作时,遇到了问题:
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
并获得有关角色的信息。但是第二个任务失败了:
NameError: uninitialized constant Xaaron::Role
我在我的主应用程序中运行每个任务,因为这些任务都在引擎内部,使用以下方式:
bin/rake xaaron:get_roles` and `bin/rake xaaron:get_role
我可以在使用引擎的主应用程序中运行bin/rails c
,并运行Xaaron::Role
以获取有关Roles表的信息。
为什么第二个失败了而第一个没有?是否存在参数作用域?
:something => [:enviroment], [:param] do |t, args| ... end
,你能澄清一下我如何传递参数吗? - SeekingTruth:something, [:param] => [:environment]
- DGM