ruby-on-rails – 如何使Rails ActiveRecord自动截断设置为具有最大长度的属性的值?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何使Rails ActiveRecord自动截断设置为具有最大长度的属性的值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个类,如下所示:
class Book < ActiveRecord::Base

  validates :title,:length => {:maximum => 10}

end

有没有办法(安装宝石?)我可以让ActiveRecord根据最大长度自动截断值?

例如,当我写:

b = Book.new
b.title = "123456789012345" # this is longer than maximum length of title 10
b.save

应该保存并返回true吗?

如果没有这样的方式,你会如何建议我更普遍地面对这样的问题?

解决方法

好吧,如果你想要将值截断,如果它太长,你就不需要验证,因为它总是会通过.我会像这样处理:
class Book < ActiveRecord::Base
  before_save :truncate_values
  def truncate_values
    self.title = self.title[0..9] if self.title.length > 10
  end
end

猜你在找的Ruby相关文章