道喜技术日记 .^. 天天红玉世界

Rails Ruby MacOSX 。。。创新来自于刻苦的实践和勤奋的思考... www.hhtong.com


Rails世界:Rails第四版翻译思考(四)

Gudao Luo2011-07-26 at 16:31发表的

  • 原文
    • But Isn’t SQL Dirty?
    • It was built on the notion that SQL is neither dirty nor bad, just verbose in the trivial cases.
  • 翻译
    • SQL语句是灰色的吗?
    • 它(Active Record)当时是以这一概念建立起来的,即SQL语言既不是灰色的也不是有缺陷的,只是很简单的SQL查询有点累赘。
道喜评论:

  先理解一下,什么是“灰色收入”?存在似乎还有一定的合理性和现实性的收入。从真正意义上说,这种收入是不合理甚至是不合法的。

  当然在计算机科学中,灰色(Dirty)既不是说“合理”也不是“合法”的问题,而是通过一种"不寻常"的方法达到处理数据的目的。

  例如,类对象的内存地址是确定的。要是修改了该对象属性内容。参见: What’s New in Edge Rails: Dirty Objects 。该对象的内容被修改了,但其内存地址还是保持不变。在早期的Rails版本中,进行这样的修改是无法知晓的,该对象可称之为灰色对象(Dirty Objects)。

  修改类对象的属性肯定是可以的。但是问题是在Rails早期版本中,不知道曾经修改了该对象。之后的Rails版本,就可以知道是否修改了该对象。这样就有了一个认知修改的方法。这是一个从灰色走向白色的过程。

Rails世界:Rails第四版翻译思考(三)

Gudao Luo2011-07-19 at 11:36发表的

  • 原文
    • If we pass multiple parameters to a where call, Rails treats the first parameter as a template for the SQL to generate. Within this SQL, we can embed placeholders, which will be replaced at runtime by the values in the rest of the array.
  • 参考资料: http://goo.gl/PUHGp http://goo.gl/szPRn
    1. “the first parameter”使用不妥。a)因为第一个参数的第一个元素作为“a template for the SQL”。b)第二个参数是什么?c)只有在这个实例中可以这样说明这个参数使用方法。
    2. “If we pass multiple parameters to a where call,”,这是一种通用说法,而这一段下面的代码仅仅是只有一个参数的实例。
    3. 要是不看代码,这一段最后的“array”使人感到很突然。
  • 中文翻译
    • 我们可以将一个参数传递到调用函数where。在这参数是数组(Array类)情况下,Rails把该数组的第一个元素作为生成SQL语句模板使用。在这SQL语句中,可以嵌入占位符,而在实时运行时这些占位符是由该数组的其它元素来代替。
    • Order.where([“name = ? and pay_type = ‘po’”, name])
    • 我们可以将多个参数传递到调用函数where。在第一个参数是字符串(String类)情况下,那么Rails把该第一个参数作为生成SQL语句模板使用。在这SQL语句中,可以嵌入占位符,在实时运行时这些占位符将由第二个参数(数组)来代替。
    • Order.where(“name = ? and pay_type = ‘po’”, name)

Rails世界:阅读Rails第四版原版思考(二)

Gudao Luo2011-06-29 at 19:20发表的

2011-06-29-rails4cn
  • 英文原文Page269

Rails will track row version numbers and perform optimistic locking if a table contains lock_version.

  Rails会跟踪行版本号和执行乐观锁定,如果表中包含lock_version。

  如果一个表有lock_version这个列,则Rails会跟踪一行的版本号并执行乐观锁。

  • 中文第三版翻译Page238

  如果表中包含lock_version字段,Rails会自动跟踪行版本号,并对记录加乐观锁。

Rails世界:阅读Rails第四版原版思考(一)

Gudao Luo2011-06-28 at 23:19发表的

2011-06-28-rails4cn
  • 英文原文Page268

Inside the code of the model, we can use the read_attribute and write_attribute private methods. These take the attribute name as a string parameter.

  • 网络中文翻译(一)

  最后,在model本身的代码内部,你可使用read_attribute()和write_attribute()私有方法。这些接受做为字符串参数的属性的名字。

  • 网络中文翻译(二)

  最后,也可以使用Model自己的私有方法read_attribute和write_attribute,这两个方法使用属性名作为参数。

  • 中文第三版翻译Page238

  最后,在模型内部的代码中,我们可以使用read_attribute()和write_attribute()这两个私有方法,参数都是字符串形式的属性名称。