2

好吧,我们都知道最后一个ActiveRecord::Store类的惊人新特性。

但是我们怎样才能安全地进行验证呢?这里有一个例子:

class User
  has_many :posts
end

class Post
  belongs_to :user
  store :composed_attribute, accessors: [:attribute_1, :attribute_2]

  validates :attribute_1, presence: true # This works great!
  validates :attribute_2, presence: true,  uniqueness: {scope: :user_id, message: "must be unique."} # This fails!
end

第一个验证效果很好,但第二个验证失败并且无法理解 undefined method 'text?' for nil:NilClass

在数据库中,所有内容都以 yaml 格式存储。但我们无法确定顺序,那么执行此类验证的最佳方式是什么?

免责声明

我知道,也许在这种情况下,将属性存储在一起并不是一个好主意,主要是为了解决性能问题,但无论如何这是一个有趣的话题。

4

0 回答 0