Tip 1. 默认情况下,Rails认为类名是单数,表明是复数形式。
如果你不喜欢这样的行为可以在配置文件(config/environment.rb)中设置一个全局标识来禁用它。
ActiveRecord::Base.pluralize_table_names = false
Tip 2.默认情况下,ActiveRecord会使用推导表明的算法,如果你不希望使用此算法可以在指定的model中使用 "set_table_name" 方法,例如:
class Sheep < ActiveRecord::Base
set_table_name "sheep"
end
Tip 3.SQL 类型和Ruby 类型之间的对应关系可能会在 decimal 类型的精度上出现问题。SQL的 demimal,numeric,float,double 都对应 Ruby 的 Float。可以使用聚合对象 composed_of 对字段进行处理。
Tip 4.ActiveRecord会尽量的把从数据库中获取的值转换为Ruby的类型(譬如说,假设数据库字段是 timestamp 类型的,就会返回 Time 对象)。如果你希望得到一个属性的原始值,可以在属性名称后面加上 _before_type_cast.
Tip 5.Ruby 认为:除了 nil 和 false 之外的所有值都被解释为 true。所以,如果要查询一个 boolean 型字段的状态,就必须在字段名的后面加上一个问号:
user = User.find_by_name("Dave")
if user.superuser? # 不可以使用 user.superuser,否则不论数据库中存储的是数字 0、字符串 f 还是德语的 N,此条件都将成立。
grant_privileges
end