我正在开发一个包含三个不同应用程序的项目.他们应该分享一些模型和外部布局.为了避免代码重复,我正在尝试将应用程序布局(project_name / app / views / layouts / application.html.haml)解压缩到gem中.
我按照以下步骤操作:
>使用bundle gem common创建基础gem结构
>将布局文件放在common / app / views / layouts / application.html.haml中
>写了Gemspec描述符
# -*- encoding: utf-8 -*-
require File.expand_path('../lib/common/version', __FILE__)
Gem::Specification.new do |gem|
gem.authors = ["Arthur Alkmim"]
gem.email = ["myemail@here"]
gem.description = %q{Common project files}
gem.summary = %q{Common project files, including layout and migrations}
gem.homepage = ""
gem.files = `git ls-files`.split($\)
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
gem.name = "common"
gem.require_paths = ["lib"]
gem.version = Common::VERSION
end
>提交更改
> gem build common.gemspec(成功)
> rake安装(成功)
>将gem’common’放置在项目Gemfile中
但是项目仍然不会加载应用程序布局.我该怎么做才能告诉我的项目它必须通过gem加载布局文件?
提前致谢.
最佳答案 您是否已将宝石添加到Rails Gemfile中以将其包含在您的应用程序中?
您可以使用path选项指定开发中的相对路径.例如
gem 'common', :path => "../path/to/gem"
不要忘记然后运行bundle install