嘿,小心你的双等号==

前两天在写代码的时候,突然收到警告说项目代码中存在 XSS 漏洞,遂立即根据报告的 URL 排查页面代码,虽然很快就修复了,而且同样问题的讨论两年前就有了,看RubyChina: 别用 raw 和 html_safe,一般来说相对有经验的老鸟也应该都知道这个点,但是还是觉得有必要写出来,再次提醒一下其他小伙伴,避免踩坑。

Read on →

谨防 ActiveSupport::Cache::Store 缓存 Nil 值

Rails 中的 active_support 组件主要基于 Rails 需要提供了很多非常有用的基础工具以及对 Ruby 内置类进行扩展。其中的 cache 模块主要提供了 Rails 中底层缓存的定义以及简单实现。今天要跟大家探讨的是之前在使用此模块所遇到的一个坑,有兴趣学习其基本用法的可以点击以下两个链接:

Read on →

使用 Chinese_pinyin + Friendly_id 为中文标题生成 Slug

在许多项目中,我们可能都会遇到需要为数据生成 slug 的场景,这些场景类似于:

  • 基于商品名称生成 slug
  • 基于文章标题生成 slug

至于为什么需要生成 slug,而不是使用比如 Rails 中默认自增的主键也就是数据的 id,原因其实很简单:

  • 使用自增 id 容易暴露数据,比如通过订单 id 可能导致遍历所有订单,不信,你看这里就有个例子
  • 增加 URL 友好性,/products/18376 这样的链接肯定没有比 /products/apple-watch-gold 这样的链接更招人喜欢
Read on →

MySQL in 查询,并通过 FIELD 函数按照查询条件顺序返回结果

我们都非常习惯通过 MySQL 的 IN 函数来查询特定集合的数据,比如为了在 books 表中找出李雷、韩梅梅和安华写的书,我们可以有如下的 SQL(可以通过 SQL Fiddle查看示例):

Read on →

Apdex——衡量服务器性能的标准

日常工作中,我们总是习惯于通过量化的标准去衡量我们对事物的评价,比如美食点评的星级、酒店的星级、每个个人的信用评分等等。而作为一个 Web 工程师,我们也总是在意于我们网站的性能,因为网站的性能会最直接地影响用户的体验。今天要介绍的就是一种同样能够帮助工程师对应用性能进行量化评估的标准 —— Apdex 。

Read on →

申请以及集成 Stripe 的 Alipay 支付方案

        最近在一个项目需要支持人民币支付,并且客户要求希望能够收完款后的结算是用美元,所以就想到了去年 Stripe 宣布已经跟支付宝达成合作意向,所以经过一番咨询跟集成,终于把 Stripe 集成进来,并且启用了支付宝收款。这篇文章介绍功能申请以及集成的完整过程。

Read on →

How Do I Fix Passenger Application Startup Problem

Recent days I was working on deploying one of my Rails project on a complete new VPS. I had operated according to my experience for deploying sites before, but at the last step, after I have deployed the site, it always raised error message “An error occurred while starting up the preloader: it did not write a startup response in time.” when I try to visit the site. But, thanks to much hard work and retry, I found the source of the problem and finally fix it.

I will spend short time to show the main steps to resolve the problem. Let’s GO!

Read on →

在 coding.net 上部署 Jekyll 博客

自从 coding 推出 PaaS 演示平台以及开放自定义域名之后,很多人开始尝试在 coding 上部署自己的博客,其中就有 jekyll,coding 上就有官方推荐的 jekyll-demo。但是因为这个 Demo 的 README 文档中只是简单介绍配置步骤而已,没有详细介绍原理以及灵活配置的地方,我在参照着迁移 jekyll 博客的过程中也遇到一些问题。现在写下文章,希望能够把原理理清楚。

Read on →

RAILS中利用YAML文件完成数据对接

最近在做的Ruby on Rails项目中,需要将远程数据库中的数据对接到项目数据库中,但是远程的数据不仅数据表名跟字段命名奇葩,数据结构本身跟项目数据结构出入比较大,在数据导入过程中代码经历了几次重构,最后使用了YAML文件解决了基本数据1对接的问题。在此写一篇博文,我会尽量重现一路过来的代码变更,算是分享一下我的思考过程,也算是祭奠一下自己的苦逼岁月。

Read on →

Sublime Text 2基于语法的配置文件

最近在学习Python编程语言,但是遇到一个小小的问题,就是原来Ruby的编码规范是用2个空格缩进的,所以以前在Sublime的全局用户配置中设置了"tab_size": 2,所以在编辑Python文件的时候就每次都要从菜单中设置tab_size的大小为4。后来经过搜索,发现Sublime Text 2实际上是支持语法特定的配置的,具体的步骤是:

Read on →