【问题标题】:Rails :before_save upcase private methodRails :before_save 大写私有方法
【发布时间】:2015-11-12 13:46:09
【问题描述】:

我的模型中有两种方法可以在将注册字段插入数据库之前对其进行更改。 strip_whitespace 方法有效。但是,make_uppercase 没有。

我也尝试将make_uppercase 方法传递给before_save 回调just。任何帮助将不胜感激。

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

【问题讨论】:

    标签: ruby-on-rails before-save


    【解决方案1】:

    试试:

    def make_uppercase
      self.registration.upcase!
    end
    

    bang 方法(大写!)修改接收器 - 在本例中为 self.registration。

    【讨论】:

      【解决方案2】:

      我认为你应该使用upcase! 而不仅仅是upcase

      或者像这样重新定义方法:

      def make_uppercase
        self.registration = self.registration.upcase
      end
      

      【讨论】:

      • 谢谢 Zozo,@AndreOgle 刚刚打败了你。非常感谢您抽出宝贵的时间。
      猜你喜欢
      • 2014-12-02
      • 2014-07-05
      • 1970-01-01
      • 2013-05-06
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      相关资源
      最近更新 更多