好吧,我们都知道上一个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格式存储。但是我们无法确定订单,那么哪种方式是执行此类验证的最佳方式?
声明
我知道,在这种情况下,将属性存储在一起并不是一个好主意,主要是出于性能问题,但无论如何这都是一个有趣的话题。