创建项目 - mycolorway/tao_on_rails GitHub Wiki

新项目模版

Tao on Rails 提供了一个Application Template,用来生成基于Tao on Rails的新项目:

rails new app_name -m https://git.io/vSvyw

这个新项目模版会在 Rails 默认的 Application Generator 的基础上做这些事情:

项目文件结构

Tao on Rails在项目文件结构上有一些约定:

后端 Component 子类

跟业务相关的放到 app/components,文件夹里面再按资源分子文件夹;

跟业务无关的放到 lib/components 文件夹。

前端 TaoComponent 子类

跟业务相关的放到 app/assets/javascripts/components 文件夹,如果是某一种具体资源相关的应该放到 app/assets/javascripts/resources/components 文件夹;

跟业务无关的放到 lib/assets/javascripts/components 文件夹;

stylesheets 的文件结构跟 javascripts 一样。

Component 模版文件

跟业务相关的模版放到 app/views/components ,文件夹里再按照资源分子文件夹;

跟业务无关的模版放到 lib/views/components 文件夹。

Assets Variant

很多时候一个项目里面需要分开打包多套前端 assets 文件,比如知人的桌面版和移动版会使用两套不同的 assets 文件,而且即使同样都是桌面版,不同的角色访问也可能会分为不同的版本,这个时候我们的前端脚本和样式,在按照资源拆分文件夹的基础上,需要增加一种新的管理维度——资源版本(Assets Variant):

|- app
|  |- assets
|     |- javascripts
|        |- employee_phone
|           +- resource1
|           +- resource2
|           |- application.coffee
|        +- employee_desktop
|        +- hr_desktop
|        |- application.coffee

每个资源版本都有自己独立的 Applicaiton 子类,这些子类可以继承自一个全局的 Application 类,这样的继承关系可以方便的实现一些全局通用的初始化逻辑,同时保持不同版本的特殊性。