【发布时间】:2014-07-14 09:52:54
【问题描述】:
我正在尝试将表单中的字段更改为小写,然后再将它们保存到数据库中。这是我的代码,但是数据库的输出仍然是大写的,为什么代码不起作用?
class Transaction < ActiveRecord::Base
validates :name, presence: true
validates :amount, presence: true, numericality: true
before_save :downcase_fields
def downcase_fields
self.name.downcase
end
end
【问题讨论】:
-
before_save { |transaction| transaction.name.downcase! }
-
这是一个老问题,但我认为值得指出的是这个想法会产生意想不到的后果。如果您等待像
name这样的小写,您实际上无法获得您认为得到的唯一性约束。这使您的客户的事情变得复杂。您可能希望在唯一性验证器中将此与不区分大小写结合起来。
标签: ruby-on-rails ruby database sqlite activerecord