我正在研究一個包含三個不同應用程序的項目。他們應該分享一些模型和外部佈局。爲了避免代碼重複,我試圖將應用程序佈局(project_name/app/views/layouts/application.html.haml
)提取到一個gem中。如何將應用程序佈局打包到Ruby gem中?
我按照這些步驟:
- 裏面創建
common/app/views/layouts/application.html.haml
與
bundle gem common
- 地方佈局文件基本寶石結構寫的Gemspec描述
# -*- encoding: utf-8 -*- require File.expand_path('../lib/common/version', __FILE__) Gem::Specification.new do |gem| gem.authors = ["Arthur Alkmim"] gem.email = ["[email protected]"] 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 install
(成功)- 將
gem 'common'
項目的Gemfile
但還是該項目將不會加載應用程序的佈局。我應該怎麼做才能告訴我的項目必須通過gem加載佈局文件?
在此先感謝。
如何使用git子模塊或svn外部?如果你走寶石路線,你將不得不建立/安裝每當有變化。 – kreek
@KreeK子模塊和外部設備是一種痛苦。根據我的經驗處理寶石更容易 - 只需運行「捆綁安裝」即可。特別是Git子模塊非常煩人。 –