问题如下:
# 1) Create full engine `myengine` with Rails 4.2.10
rails _4.2.10_ plugin new myengine --full
# 2) Try to rails generate
$ bin/rails g
/usr/local/lib/ruby/gems/2.6.0/gems/railties-4.2.10/lib/rails/engine/commands.rb:17:in `<top (required)>':
undefined method `railtie_namespace' for nil:NilClass (NoMethodError)发布于 2020-04-11 15:46:42
当您对引擎目录进行符号链接并通过如下链接到达该目录时,就会出现问题:
cd path/to/somewhere
rails _4.2.10_ plugin new myengine --full
ln -s path/to/somewhere/myengine ~/favorite/myengine
cd ~/favorite/myengine
./bin/rails g如果你这样做了,你就会遇到错误。要解决此问题,请更改bin/rails顶部的某些行,如下所示:
# from
ENGINE_ROOT = File.expand_path('../..', __FILE__)
ENGINE_PATH = File.expand_path('../../lib/myengine/engine', __FILE__)
# to
require 'pathname'
ENGINE_ROOT = Pathname.new(__FILE__).realpath + '../..'
ENGINE_PATH = ENGINE_ROOT + 'lib/myengine/engine'请参阅::Rails::Engine.find的实现,了解补丁的工作原理。
https://stackoverflow.com/questions/61153582
复制相似问题