我的模型中有两个方法,它们在将注册字段插入数据库之前对其进行更改。 strip_whitespace
方法有效。但是,make_uppercase
没有。
我还尝试将 make_uppercase
方法传递给before_save
回调。任何帮助将不胜感激。
class Vehicle < ActiveRecord::Base
belongs_to :vehicle_class
belongs_to :vehicle_make
before_save :strip_whitespace, :make_uppercase
# Strip whitespace from registration field before inserting it in to the DB
def strip_whitespace
self.registration.gsub!(/\s+/, '')
end
# Make all characters uppercase before inserting it in to the DB
def make_uppercase
self.registration.upcase
end
private :strip_whitespace, :make_uppercase
end
答案 0 :(得分:3)
我认为您应该使用upcase!
而不仅仅是upcase
或重新定义这样的方法:
def make_uppercase
self.registration = self.registration.upcase
end
答案 1 :(得分:2)
尝试:
def make_uppercase
self.registration.upcase!
end
bang方法(upcase!)修改接收器 - 在这种情况下是self.registration。