byterat

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  54 随笔 :: 0 文章 :: 15 评论 :: 0 Trackbacks

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

posted on 2006-12-15 09:30 比特鼠 阅读(286) 评论(0)  编辑  收藏 所属分类: Ruby on Rails

只有注册用户登录后才能发表评论。


网站导航: