`
jbf034
  • 浏览: 152396 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Boolean 属性

阅读更多

有些数据库支持boolean 列类型,而有些不支持。这使得Active Record 很难抽象化
boolean。例如,如果基础数据库没有boolean 类型,一些开发者使用char(1)列包含”t”
或”f”来表示true 或false。而其它开发者使用整数列,0 是false,1 是true。即使数据
库直接支持boolean 类型(如MySQL 和它的bool 列类型),它们也只是在内部存储0 或1。
问题在Ruby 中数字0 和字符”f”两者在条件句中被解释为true 值。[Ruby 有个true 的简
单定义。不是nil 或常量false 的所有值都是true。]这意味着如果你直接使用列的值,你
的代码在你认为它是false 的时候,将其解释列为true.。
# DON'T DO THIS
user = Users.find_by_name("Dave")
if user.superuser
grant_privileges
end
要在一个条件句内查询一个列,你必须附加一个问号给列的名字。(译注:在Ruby 中称
这为?句。)
# INSTEAD, DO THIS
user = Users.find_by_name("Dave")
if user.superuser?
grant_privileges
end
这种形式的存取器查看列的值。只有在数字零的情况下,它才被解释为fals;一个字符
串”0”,”f”,”false”,或者””(空字符串);nil;或者常量false。否则它被解释
为true。
如果你用先前的schema 或者不是英语的数据库工作,在先前段落中定义的true,可能
会不可靠。这些情况下,你可以覆写内置predicate 方法的定义。例如,在Dutch 语言中,
字段可能包含J 或N(Ja 或Nee)。在这个例子,你可以写:
class User < ActiveRecord::Base
def superuser?
self.superuser == 'J'
end
# . . .
end
分享到:
评论

相关推荐

    struts2 依赖注入boolean类型的属性时报错

    解决这个问题的一种方法是确保在XML配置文件中,boolean属性值用双引号包裹,如: ```xml ``` 或者,如果是在Action类的配置中: ```xml ``` 此外,还有一种可能是Action类的setter方法不匹配。对于boolean...

    模拟风扇(java)

    1 个boolean 属性on 指定开关机,默 认值false;1 个double 属性radius 指定风扇扇叶大小;1 个String 属性color 指定扇叶颜色, 默认值为blue。方法包括这些属性的访问器、构造函数、重写Object 类的toString()和...

    xml和java bean互相转换工具包(简单易用)

    4、bean类boolean属性(Boolean无此要求),前面三个字母需要小写,否则 无法读存BEAN值。 5、bean里面的属性如何仍然是bean,则可以递归解析拼装。 使用举例: 1、根据类生成XML配置文件模板 String beanClass2xml ...

    阿里规范:为何boolean类型变量命名禁用is开头

    这样的约定是为了让代码更易读,因为"get"和"set"清晰地表明了方法的作用,而"is"前缀对于boolean属性则暗示了返回的是一个布尔值,表示属性的状态。 然而,当boolean属性名以"is"开头时,可能会引发问题。在某些...

    java模拟风扇

    1 个boolean属性 on 指定开关机,默 认值false ;1 个double 属性 radius 指定风扇扇叶大小;1 个String 属性 color指定扇叶颜色, 默认值为 blue 。方法包括这些属性的访问器、构造函数、重写 Object 类的 toString...

    JavaScript语言参考手册

    这一章包含了 JavaScript 的核心对象 Array,Boolean,Date,Function,Math,Number,Object 和 String。这些对象同时在客户端和服务器端的 JavaScript 中使用。 Array 属性 方法 Boolean 属性 方法 Date 属性 方法...

    JavaScript中文参考手册

    本书已经更新于 JavaScript 1.2 的新特性,其它包括了 JavaScript 支持层和样式单的属性和对象。要获得关于这些主题的详细信息,请参看 Netscape Communicator 中的动态 HTML。 目录 此参考中包含的内容 此参考...

    J2EE应用开发_JavaBean

    例如,对于一个名为`sex`的boolean属性,getter可能是`public boolean getSex()`或`public boolean isSex()`,setter则是`public void setSex(Boolean sexVar)`。 在JSP中使用JavaBean,JSP提供了一系列内置动作...

    jquery改变disabled的boolean状态的三种方法

    if(text2.attr(“disabled”)==false){ //通过设置disabled的boolean属性将第三个text输入框disabled属性置为true text2.attr(“disabled”,true); }else{ //通过将第三个text输入框disabled属性置为false来移除...

    第六章 JavaBean技术基础知识.ppt

    2. **boolean属性**:对于boolean类型的属性,getter方法通常命名为`isXXX`,setter方法为`setXXX`。 3. **属性访问权限**:属性通常是私有的(private),以保护数据安全。 4. **方法访问权限**:所有提供给外界...

    JSP与JAVABEANS相关的PPT+例子

    - 特殊情况下,boolean属性可以用isXxx()替代getXxx()。 6. **JavaBean的属性类型**: - Simple属性:单一属性,通过getter和setter进行访问。 - Index属性:数组类型的属性,提供设置和获取整个数组以及单个...

    maven打包跳过test命令.docx

    当你使用-DskipTests=true(或简单地-DskipTests,因为Maven的Boolean属性默认为true)时,Maven会跳过测试执行阶段,但还是会编译测试代码并生成测试报告(通常是一个空的报告)。这意味着测试类会被编译,但不会...

    javabean组件程序设计.pptx

    - 对于boolean属性,可以使用`is`开头的getter方法,如`isDone()`。 4. **JavaBean的开发**: - 开发JavaBean可以使用Sun Microsystems提供的Bean开发工具包(BDK),或其他第三方工具,如JavaPlan、Java Studio、...

    HTML5-学习笔记.pdf

    HTML5还引入了boolean属性,如`disabled`和`readonly`,只需写出属性名即可表示属性值为true,无需赋值。 HTML5的一个核心目标是增强浏览器间的兼容性,因此它重新定义了语法,以便在不同浏览器中都能得到一致的...

    MyBatis 讲义 第二版.docx

    例如,当字段为 int 类型,而实体类属性为 boolean 时,可通过自定义 TypeHandler 进行适配。自定义过程包括: - (1) 创建实体类,将数据库中的 int 字段映射为 boolean 属性。 - (2) 设计数据库表结构,确保字段...

    [计算机软件及应用]Java开发规范.doc

    对于Java Bean中的boolean属性,访问器方法应命名为`isXXXX`,例如`isDone`。 **2.1.4 控制结构与大括号** `if`、`else`、`while`、`for`等语句必须使用大括号 `{}` 将代码块包裹,即使只有一行代码,以增加代码的...

    Android开发命名规范以及注意事项1

    - **类属性**:遵循Java的驼峰式命名,Boolean属性建议以`is`或`has`开头。 - **成员变量**:通常以`m`开头,后面接功能描述和变量类型,控件属性则以控件名+功能描述命名。 - **方法名**:以小写字母开头,动词...

    JAVA开发中遇到的问题和异常.doc

    3. **EL表达式与boolean属性**:在使用EL表达式处理`boolean`属性时,由于JavaBean规范,通常需要使用`get`开头的方法,如`getXXX()`,而不是`isXX()`。 4. **日期处理**:获取日期的下一天,可以通过创建`Calendar...

    使用JavaBean分离表示与实现

    4. 私有属性(`private`),并提供对应的getter和setter方法,对于boolean属性,可使用`isXxx()`方法。 创建一个标准JavaBean的基本步骤: 1. 定义JavaBean类,声明公共类和包名。 2. 编写无参构造函数,用于对象...

Global site tag (gtag.js) - Google Analytics