Ruby on rails 大写名称的Rails命名约定
我有一个模型课:Ruby on rails 大写名称的Rails命名约定,ruby-on-rails,ruby,activerecord,model,naming,Ruby On Rails,Ruby,Activerecord,Model,Naming,我有一个模型课: class QRCode < ActiveRecord::Base has_many :properties end class QRCode
class QRCode < ActiveRecord::Base
has_many :properties
end
class QRCode
因此rails需要一个名为“qr_codes”的数据库表和一个名为“qr_code_id”的外键。
但作为我的属性模型中的关系,它需要另一个名称:
class Property < ActiveRecord::Base
belongs_to :q_r_code
end
class属性
因此,如果我想创建一个属性对象,我“必须说”:q\r\u code=>qrcode”
但是active\u record需要qr\u code属性,因为该列称为“qr\u code\u id”
我是否理解错了,或者Rails无法映射这种类型的名称
注意:我正在使用Rails 3.0.3接受一个
:foreign\u key
和:class\u name
属性。我将重命名我的类QrCode
。换句话说,我使用camel大小写来表示单词边界,而不是原始术语是否是首字母缩略词的概念。这是将Rails用于遗留数据库时让我恼火的事情之一。字段名通常来自左字段,因为DB或表的原始创建者没有停下来考虑使用SQL和控制台以外的语言访问表。考虑带有规则和假设的ORM完全超出了他们的范围。正如@Simone Carletti所指出的,Rails允许我们用键或表的实际名称覆盖其假设,但我们仍然会留下命名笨拙的模型和字段,这导致我们在发现问题时遭到一些诅咒。多亏了,最后我将我的类重命名为QrCode,因为我可以避免这种关系和路由的定制