Rails :before_save 大写私有方法
Rails :before_save upcase private method
我的模型中有两种方法可以在将注册字段插入数据库之前对其进行更改。 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
尝试:
def make_uppercase
self.registration.upcase!
end
bang 方法(大写!)修改接收器 - 在本例中为 self.registration。
我认为你应该使用 upcase!
而不仅仅是 upcase
或者像这样重新定义方法:
def make_uppercase
self.registration = self.registration.upcase
end
我的模型中有两种方法可以在将注册字段插入数据库之前对其进行更改。 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
尝试:
def make_uppercase
self.registration.upcase!
end
bang 方法(大写!)修改接收器 - 在本例中为 self.registration。
我认为你应该使用 upcase!
而不仅仅是 upcase
或者像这样重新定义方法:
def make_uppercase
self.registration = self.registration.upcase
end