02 Sep 2012
Richard Huang
Sometimes you may face the situation that some features will be released, but you are not sure if it is friendly to end user, or if it will lead to performance issues, at that time you should use what we called "feature flags"
Read More
Tags
performance
02 May 2012
Richard Huang
Most developers use AR callbacks after_create/after_update/after_destroy to generate background job, expire cache, etc., but they don't realize these callbacks are still wrapped in database transaction, they probably got unexpected errors on production servers.
Read More
Tags
model
06 Mar 2012
Richard Huang
Rails mass assignment feature is really useful, but it may be a security issue, it allows an attacker to set any models' attributes you may not expect. To avoid this, we should add attr_accessbile or attr_protected to all models.
Read More
Tags
model
security
10 Feb 2012
Richard Huang
It's very common for a rails developer to use time_ago_in_words to display time like "5 minutes ago", but it's too expensive to calculate the time in server side, you should utilize client cpu to calculate the time ago.
Read More
Tags
helper
javascript
05 Dec 2011
Brasten Sager
Business model methods should be named after the logic / business value they provide, not the implementation details. Violations to this practice tend to show up on ActiveRecord models.
Read More
Tags
model
30 Oct 2011
Richard Huang
rails migration provides a convenient way to alter database structure, you can easily add, change and drop column to a existing table, but when the data in existing table are huge, it will take a long time to alter existing table, you should try to merge/optimize the db alter sql statements.
Read More
Tags
migration
performance
19 Aug 2011
Andy Wang
By default, Rails generates seven RESTful routes(new,edit,create,destroy,index,show, update) for a resource, sometime the resource only needs one or two routes, so just user :only or :except while defining routes to speedup the routing.
Read More
Tags
route
rails
RESTful
04 Jul 2011
Richard Huang
Using tabs can mess up the spacing since some IDE's use 4 spaces for a tab, while others use 2, and some people don't use tabs at all, a mix of tabs and spaces causes things to not line up in most cases.
Read More
Tags
tab
whitespace
23 Jun 2011
Angelo Capilleri
Use select with has_many and belongs_to on Active Record Associations
Read More
Tags
refactor
model
performance
02 Jun 2011
Guo Lei
Tags
controller