A common web app frame on rails.
- 将必要的gem包声明写入Gemfile文件;
- 在config/database.yml 文件中配置数据库连接适配器
ActiveRecord 是Rails的 ORMapping 框架,以下简称AR。
AR 在JRuby环境下连接数据库需要 activerecord-jdbc-adapter gem包的支持,该gem包还提供了多个适配器(Adapter)分别用于支持:
- MySQL:activerecord-jdbcmysql-adapter
- PostgreSQL: activerecord-jdbcpostgresql-adapter
- SQLite3: activerecord-jdbcsqlite3-adapter
- Derby: activerecord-jdbcderby-adapter
- HSQLDB: activerecord-jdbchsqldb-adapter
- H2: activerecord-jdbch2-adapter
- MSSQL: activerecord-jdbcmssql-adapter
然而,Oracle数据库还需要另外一个gem包括的支持:activerecord-oracle_enhanced-adapter
修改 database.yml 文件,添加以下内容:
For MySQL database
adapter: jdbcmysql
host: localhost
database: db-name
username: u-name
password: passwd
For Oracle database
adapter: oracle_enhanced
host: localhost
database: sid
username: u-name
password: passwd
针对javascript,jQuery是不二之选,在rails创建一个新的App默认就包括了jQuery,开箱即用。 CSS框架的选择,未做过多研究和比较,选择Bootstrap来用,看重的是它的社区活跃度和与jQuery的完整整合。 Bootstrap要整合到Rails之 Assets pipeline 里需要twitter-bootstrap-rails gem包的支持,该包需要借助Less技术定制Bootstrap,当前未对Less进行过多研究。
Rails使用Engine来实现模块化,参考Rails Engine 指南了解更多信息。
首先使用命令:rails plugin new mymodule --full --mountable 创建一个mymodule模块,它是一个标准的Gem包。
Rails的Engine涉及两个概念,
-
Engine,一个微型程序,提供相对独立的特定功能,它和一个普通Rails应用非常相似,拥有基本一致的结构。
-
宿主程序,一个包含Engine的 普通rails应用。
在宿主程序中引入一个模块有两个步骤:
- 添加gem包申明在Gemfile文件中,
gem 'mymodule', path: '../mymodule' - 添加路由信息到routes.rb文件,
mount MyModule::Engine => "/mymodule"