【问题标题】:Q about Ruby on Rails Naming ConventionsQ 关于 Ruby on Rails 命名约定
【发布时间】:2013-05-21 01:39:33
【问题描述】:

快速提问。我是一位经验丰富的开发人员,但对 Ruby on Rails 非常陌生。我想知道必须遵守命名约定的严格程度。例如,我习惯于对表名使用驼峰式大小写,对除最后一个列名之外的所有字母使用小写。这只是我多年来养成的一种习惯,我对此感到非常舒服。我绝对鄙视使用下划线连接两个单词的做法,如 Ruby 中的实例变量所规定的那样。我想知道的是,如果我的模型是驼峰式的并且我的实例变量都是小写的,除了最后一个字母,会有什么问题吗?我看过一些文档说它可以改变解释器与我的模型交互的方式。我看过其他文档说这没什么大不了的。所有这些在脚手架方面如何发挥作用?

【问题讨论】:

  • “我习惯使用……除了列名的最后一个字母之外的所有字母都小写”,真的吗?所以你有像“lastnameE”这样的列名?
  • 有点。更像是如果我有一个名为 Users 的表,我会有一个名为 lastnameU、firstnameU、emailU 等的列。如果该表名为 HostCities,我可能会有名为 countryHC、provinceHC 等的列。这只是我多年来养成的习惯,并且拥有名为 country_hc 的列的想法会让我发疯。
  • 这基本上看起来像是列名的匈牙利表示法。 Rails 约定将其命名为country。拥有一个 OO ORM 会让你的符号有点傻(例如HostCity.new.country_hc)。

标签: ruby-on-rails ruby naming-conventions


【解决方案1】:

我相信 Rails 的某些方面会让你做你想做的事(例如,你可以让属性以大写字母而不是通常假定的小写字母开头),但如果你偏离了他们的约定。许多 Rails 框架功能都采用 Rails 约定,您可能会失去使用其中一些工具的能力。还有一些我不确定是否有解决方法,例如模型文件的命名(client_info.rb)与内部的类(ClientInfo)。假设它们是对齐的。

我的建议是学习 Rails 方式,除非您想生活在自己的 Rails 约定世界中,与 Rails 世界的其他部分隔离。起初它也困扰着我,但我很快就习惯了。 :)

【讨论】:

  • 我也建议适应。 OP - 你对表名使用驼峰式大小写的评论......我有一种感觉,如果你这样做,你在 Rails 中会过得很糟糕。
  • 感谢您的快速回复。你没有说我想听的,但我有一种感觉,你说的是我需要听到的。老狗和新把戏,对吧?我认为我可以摆脱它,因为它对我使用诸如 Yii 之类的 Php 框架几乎没有问题。然而,Ruby 似乎是我的滑铁卢。更糟糕的是,我有一个需要迁移到 Ruby 的现有数据库,看来这将涉及重命名我所有的表和列,这会让我很恼火。
  • 我感觉到你的痛苦,BF。我想很多人都经历过。但是,一旦您进入其中,我认为您会喜欢 Rails 提供的功能。学习 Rails 迫使我更多地了解 SQL 和 Rails 中用于迁移信息的工具。所以最后,一切都很好。
  • 现在有点混乱。我刚刚在阅读stackoverflow.com/questions/4893342/…,它说型号名称应该是驼峰式。由于模型 = 表格不应该驼峰表名可以吗?看,这就是我一直在扔的东西。每次我读到一件事时,我都会发现另一件事恰恰相反。
  • 这不是itsignals.cascadia.com.au/?p=7 本质上是说模型/表格应该是驼峰式的吗?还是我读错了?无论哪种方式,我肯定必须重命名我的列。对我来说,这意味着坚持使用单一的世界列名以避免可怕的蛇形下划线。我只是不能让自己在代码中做到这一点。它让我发疯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 2011-06-24
  • 1970-01-01
  • 2018-07-07
相关资源
最近更新 更多