一直以来,我都在社区积极地实践 Sinatra。这次正好在我发起的“公益读书”活动项目中完整的实践了一次。以前自己的 Sinatra 项目好多都是Classic style,这一次用Modular Application,并且目录结构和 Rails 的目录结构也很像。
Sinatra 做项目的特别之处在于,您的代码都是您可以掌控的,不会像 Rails 那样一下子引入那么多的 gem,而且好多并不是您需要的。因此用 Sinatra 对您的 DIY 能力是种考验。
公益读书活动详情 源代码在 https://github.com/gazeldx/meidebook
包含“注册、登录、搜索图书、查看图书信息、评论图书、发表读书心得、上传图片、验证码等”功能。
请访问美德公益图书 - 首页体验相关功能(更侧重手机访问体验)。
采用Sinatra架构搭建本项目,数据库操作用Sequel,数据库用SQLite,界面用WeUI。
相比 RVM,我更喜欢 rbenv。RVM 中我想要的功能,rbenv 都有。用了 rbenv,你会发现一些 RVM 的不便之处。
ImageMagick 用于图片处理。
$ git clone [email protected]:gazeldx/meidebook.git
$ cd /path/to/meidebook
$ gem install bundler
$ bundle install
$ sequel -m db/migrations sqlite://db/book_development.db -E # 创建数据库
$ puma # 启动项目,这时可以访问 http://localhost:9292/ 了
./config.ru是第一个被加载的文件,./controllers/application_controller.rb是一个很重要的文件。
其它使用帮助见Wiki