2016-04-26 41 views
1

我正在创建引擎,并且存在一些问题。在轨道上使用红宝石创建引擎

我真的读这manual

和我的项目具有以下信息:

  • 路径到我的主要应用:/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 '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' 

我不明白这个错误来自哪里,我也不知道文件在哪里。我怎样才能找到麻烦的文件,我该如何解决这个问题?

+0

您是否尝试过正确地填写'gemspec'? – Jon

回答

0

myapp.gemspec位于引擎的根文件夹中。

在这个文件中,你写了一个简短的描述(你的引擎是干什么的)和一些依赖关系,例如该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消息

的说明时充满了默认值btw布兰登希尔克特提供了一个关于引擎的非常好的教程(http://brandonhilkert.com/blog/how-to-build-a-rails-engine/