2

モデルには、DB に挿入する前に登録フィールドを変更する 2 つのメソッドがあります。strip_whitespaceメソッドは機能します。ただし、そうではmake_uppercaseありません。

また、メソッドだけをコールバックに渡そうとしました。どんな助けでも大歓迎です。make_uppercasebefore_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
4

2 に答える 2

3

upcase!だけでなく、使用する必要があると思いますupcase

またはそのようにメソッドを再定義します:

def make_uppercase
  self.registration = self.registration.upcase
end
于 2015-11-12T13:57:56.513 に答える