我试图用bundler创建一个新的rubygem,并打算从rubygem文件夹~/work/bezier/lib/task/加载rake任务。但是pwd似乎在/users/wizztjh/work/bezier_服务器中,为新gem加载rake任务的路径是什么?
我的rubygem文件夹
bezier/lib
/railtie.rb
/task/get_transitions.rake
窥探
From: /Users/wizztjh/work/bezier/lib/bezier/railtie.rb @ line 4 :
1: module Bezier
2: class Railtie < Rails::Railtie
3: rake_tasks do
=> 4: binding.pry
5: load "lib/task/get_transitions.rake"
6: end
7: end
8: end
[1] pry(#<Bezier::Railtie>)> Dir.pwd
=> "/Users/wizztjh/work/bezier_server"
[2] pry(#<Bezier::Railtie>)>
因为根据rubygem文档
rake_tasks do
load "path/to/my_railtie.tasks"
end
但是路径/目的地是什么?
最佳答案
我尝试使用github的高级代码搜索来搜索Rails::Railtie rake_tasks do load
broadcast并找到了解决方案。
bezier/tasks/get_transitions.rake
#bezier/lib/railtie.rb
module Bezier
class Railtie < Rails::Railtie
railtie_name :bezier
rake_tasks do
load "bezier/tasks/get_transitions.rake"
end
end
end
因此,ruby gem railtie
load
pwd是gem路径的根。