我正在创建一个引擎,但我遇到了一些问题。
我正在阅读本手册
我的项目包含以下信息:
- 我的主应用程序的路径:
/var/www/crs
- 通往我的引擎的路径,MyApp:
/var/www/crs/myapp
这些是我尝试过的步骤:
-
我运行了这段代码:
rails plugin new myapp --mountable
-
我在
/var/www/crs/myapp/test/dummy/
中创建了资源 -
我添加到
/var/www/crs/config/routes.rb
行mount Myapp::Engine => "/myapp"
-
我在控制台(/var/www/crs/myapp/test/dummy/)中运行了这段代码:
rails s
目前为止,一切都好。但是,当我在主应用程序(/var/www/crs/Gemfile)中添加到gem文件时,这一行:
gem 'myapp', path: "myapp"
并执行了命令
bundle
我得到了以下错误:
The gemspec at /var/www/crs/myapp/myapp.gemspec is not valid. The validation error was '"FIXME" or "TODO" is not a description'
Could not find gem 'myapp' in source at `myapp`.
Source does not contain any versions of 'myapp'
我不明白这个错误是从哪里来的,也不知道有它的文件在哪里。如何找到有问题的文件以及如何解决此问题?
myapp.gemspec
位于引擎的根文件夹中。
在此文件中,您编写一个简短的描述(您的引擎是做什么的)和一些依赖项,例如,在创建 Gem(或引擎)时,myapp.gemspec
将填充
配置如下所示
Gem::Specification.new do |spec|
spec.name = "myengine"
spec.version = Myengine::VERSION
spec.authors = ["my username"]
spec.email = ["my email"]
spec.summary = %q{ wow great engine }
spec.description = %q{ trust me, its a great engine which is great}
spec.homepage = ""
spec.license = "MIT"
spec.files = `git ls-files -z`.split("x0")
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]
spec.add_development_dependency "bundler", "~> 1.7"
spec.add_development_dependency "rake", "~> 10.0"
end
在那里您可以找到带有TODO和FIXME消息的描述
顺便说一句,布兰登·希尔克特提供了一个非常好的关于引擎的教程(http://brandonhilkert.com/blog/how-to-build-a-rails-engine/)