【发布时间】:2015-09-16 18:02:37
【问题描述】:
我有一个这样的哈希:
@password_constraints = {
length: 'Must be at least 6 character long.',
contain: [
'one number',
'one lowercase letter',
'one uppercase letter.'
]
}
我想写一个方法来返回一个人类可读的字符串,这个字符串是由这个哈希构建的,就像这样:
必须至少有 6 个字符长。必须包含:一个数字、一个小写字母和一个大写字母。
目前,我有一个非常冗长的方法,它使用 each 迭代 @password_constraints[:contain] 数组,并有几个条件来检查我是否必须放置 , 或 and 或什么都没有。
但我想要与join(', ') 几乎相同的行为,但最后一个分隔符必须是and。
我正在寻找某种解决方案,例如带有特殊 join 的解决方案:
def password_constraints
@password_constraints[:length] << ' Must contain.' << @password_constraints[:contain].join(', ')
end
有没有办法让它更紧凑或更类似于 Ruby?
【问题讨论】: