[V21] Rails 3.0 porting

rebased #485.