Rails数据库操作全解析:从基础到高级技巧
1. 布尔值查询与主键设置
1.1 布尔值查询
在条件中查询列的布尔值时,需在列名后追加问号。例如:
user = Users.find_by_name("Dave")
if user.superuser?
grant_privileges
end
该属性访问器会查看列的值,仅当值为数字 0、字符串 “0”、”f”、”false” 或空字符串、 nil 或常量 false 时,才会被解释为 false ,否则为 true 。若使用旧版模式或非英语数据库,可重写谓词方法的内置定义。如在荷兰语中,字段可能包含 “J” 或 “N”,可这样编写:
class User < ActiveRecord::Base
def superuser?
self.superuser == 'J'
end
# ...
end
1.2 主键与ID
默认情况下,Rails迁移使用 create_table 方法时会添加名为 id 的整数主键列。使用 id 作为主键的原因在于外部数据格式可能随时间变化,若使用如ISBN这样的有意义列作为主键,当数据格式改变时,会带来诸多麻烦。例如,美国出版业在几年内改变了IS
超级会员免费看
订阅专栏 解锁全文
101

被折叠的 条评论
为什么被折叠?



