目前我在模型中执行以下操作:
before_save :to_lower
before_create :to_lower
def to_lower
self.name = self.name.downcase
end
对我来说似乎很重复。
答案 0 :(得分:15)
如果您已经有before_save,则不需要before_create。
before_save { |user| user.name = user.name.downcase }
答案 1 :(得分:3)
我通常通过以下方式处理此类案件:
def name= name
super(name.try(:downcase))
end
答案 2 :(得分:1)
def name=(val)
write_attribute(:name, val.downcase)
end
答案 3 :(得分:0)
你为什么要这样做?如果要执行不区分大小写的搜索,您可能只想将其放入查询逻辑中(实际上,我认为Rails已经做了一些)。但是,如果你真的希望在数据库中将数据规范化为小写(例如,如果你正在处理SHA1哈希或其他东西),那么你做的是正确的。