注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

rails engine开发demo  

来自阿黄   2016-03-31 11:51:31|  分类: 质量保障平台 |举报 |字号 订阅

  下载LOFTER 我的照片书  |
engine可以被认为是一个可以为其宿主提供函数功能的中间件。
engine和Rails应用几乎可以说是双胞胎
engine和插件也是近亲,拥有相同的lib目录结构

engine适合作为抽取外部公共功能的组件
下面是一个创建engine,以及将engine引入rails工程的小demo

环境
操作系统:ubuntu 14.04 LTS
ruby: ruby 2.3.0
rails: Rails 4.2.5

创建engine
1. 创建engine并安装gem包

rails plugin new bookstore --mountable



2. 修改bookstore.gemspec文件,将内部TODO的内容修改成对应信息
rails engine开发demo - 网易杭州QA - 网易杭州 QA Team
 

3. 创建scaffold
自动创建mvc层代码和创建数据库脚本
title和price是book实体的2个属性,对应数据库的2个字段
string和float是字段类型设置

rails generate scaffold book title:string price:float

 
4. 创建engine数据库

rake db:migrate


5. 运行,查看效果

test/dummy/bin/rails server 


rails engine开发demo - 网易杭州QA - 网易杭州 QA Team
 
点击New Book, 新建1个book

rails engine开发demo - 网易杭州QA - 网易杭州 QA Team
 

宿主应用engine
1. 创建宿主rails应用

rails new my_bar


2. 宿主Gemfile添加engine路径

gem 'bookstore', path: "/home/hzhuangmengling/demo/bookstore"


3. bundle install安装gem包

bundle install


4. 把 Engine 的 migration 拷贝到宿主这里,产生对应的数据库脚本文件

rake bookstore:install:migrations


5. 创建宿主工程数据库配置文件
rails engine开发demo - 网易杭州QA - 网易杭州 QA Team
 

6. 创建数据库和表结构

rake db:create; rake db:migrate


7. 启动服务

rails s



8. 本地develop环境,查看效果
这样就可以在宿主服务中使用engine内部逻辑,对book进行增删改查了
rails engine开发demo - 网易杭州QA - 网易杭州 QA Team
 

参考资料






  评论这张
 
阅读(182)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016