在轨道上使用红宝石创建引擎



我正在创建一个引擎,但我遇到了一些问题。

我正在阅读本手册

我的项目包含以下信息:

  • 我的主应用程序的路径:/var/www/crs
  • 通往我的引擎的路径,MyApp:/var/www/crs/myapp

这些是我尝试过的步骤:

  1. 我运行了这段代码:rails plugin new myapp --mountable

  2. 我在 /var/www/crs/myapp/test/dummy/ 中创建了资源

  3. 我添加到/var/www/crs/config/routes.rbmount Myapp::Engine => "/myapp"

  4. 我在控制台(/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/)

最新更新