用Ruby on Rails重写blog

Published over 1 year ago, last updated over 1 year ago

在几个月之前,我开始试着用hexo来记录一些东西,写了几篇博客记录一些算法题的解法。但是没过几天就失去兴趣了,静态博客总归让我有种怪怪的感觉,每加一点点内容就需要把整个博客重新生成的感觉并不怎么好。正好前段时间自学了一下Rails, 就打算用它来重写一个非常简单的博客。

目标

  1. 写一个支持Markdown语法的MVC构架的小站。
  2. 加入Admin Module,这样就能直接从后台上传新文章

实现

后端

得益于Rails活跃的社区,自己写的代码实在是少之又少,大部分时间我都在Google怎么样能够正确使用gem. 除了Rails自带的gem外,我用的主要有

有了这些gem,除了配置router,我只需要写好文章对应的controller和model就行了。

十多年来rails一直以快速开发著称,在自己过一遍《Rails tutorial》的时候还一直没有感觉。现在想来,书中为了让你对用户登录的整个过程有更深的理解,没有用devise这样大而全的gem,而是从has_secure_password开始,到加入remember_token, 让你一步步理解整个用户认证过程是如何进行的。这确实比直接上手用devise要好很多。

前端

前端其实没什么可写的,虽然现在各种框架齐飞,rails 5对各种前端框架的支持也算是各个MVC框架中最好的。但为了这个blog单独使用一套框架实在是毫无意义。用前端框架的目的是为了让web app能更好地与用户交互,实现Native app的体验。我一个小博客,无非就是那么几个模板,连个form都没有,要来何用。

不过bootstrap还是要用的,我的CSS水平实在是不怎么样。

部署

整个博客在本地跑起来只花了一天多的时间,部署却花了我好几天的时间。用mina自动化部署非常方便,不过前前后后遇到的小问题足够我单独写篇文章好好记录下以防下次遇上。

最后

2017年再学Rails似乎有点49年加入国军的感觉,也许rails不再是最热门的框架了,它不如koa热门,也没有Phoenix的性能。但是在学习Rails的过程中却能体会到为什么很多人说Rails包含了web development的最佳实践。只要遵守约定,就可以把所有的精力投入到开发自己所需要的功能上。所谓Convention over configuration,有人喜欢也有人不喜欢,不过有一个显而易见的好处就是Google起来解决问题会方便不少,因为大家走都是一样的路嘛。:)


Comments

    No comment yet



Leave your comment