说我有一个变量patients
。它可以代表患者的数量(Integer
),患者对象的集合(Patient
类),字符串数组或散列。
有时我需要一个简单的计数,但number_of_patients
似乎太罗嗦了。 patients_number
含糊不清,因为它可能代表患者的身份证或患者人数。将count
替换为number
稍微好一点,但并不总是适合上下文。
这个问题在Rails中更糟糕,因为使用复数集合的惯例。使用复数名词来表示Integer
感觉不对。问题从视图扩展到模型,因为模型通常需要属性来计算事物,而且它们可能具有关联的集合(例如,report
具有documents
表示Document
个对象,一个字段称为代表diseases
的{{1}}和代表Array
的{{1}}字段。
是否有处理这些案件的惯例?
答案 0 :(得分:3)
我使用patients_count
因为这是:counter_cache => true
belongs_to
给予class Patient
belongs_to :hospital, :counter_cache => true
end
时ActiveRecord使用的内容,例如:
hospital.patients_count
每次将相关患者添加到医院时,都会尝试增加{{1}}。 (Rails API docs)
答案 1 :(得分:2)
有许多惯例,我承认不一定知道Rails成语,但是......
我总是会将患者数量称为numPatients
或num_patients
(取决于语言习语)。
数组/哈希/患者集合很可能被称为patients
。
YMMV
答案 2 :(得分:1)
多数的实现很少很重要,因为无论后备类如何,都以相同的方式迭代枚举。事物的计数/大小应该以这样的方式命名 - patients
就是它所说的,患者,而num_patients /等。代表计数。