我正在对base_user
执行操作。我希望@user
的错误与base_user
的错误相同,因为我最终会将这些错误显示为视图中的横幅。但是,我不知道如何设置@user
的错误。这就是我正在做的事情:
base_user.validate_password_change(params)
if base_user.errors.size > 0
#@user.errors.initialize_dup(base_user.errors) # does not work
@user.errors = base_user.errors.dup # does not work
raise 'Validation Errors' if @user.errors.size > 0
end
@user.errors
是一个空哈希。 base_user.errors.messages是一个包含名为password的数组的哈希,其中包含元素(密码未正确格式化的原因字符串)。根据{{3}},ActiveResource :: Error对象可以from_array
,from_hash
(未在API中列出,但我在代码中看到它),from_json
和{{1但它没有初始化或设置器。
我正在使用Ruby 2.0和Rails 4.0.0,它使用ActiveResource 4
答案 0 :(得分:1)
ActiveResource :: Errors继承自ActiveModel::Errors。
您可以通过枚举@user
的属性来覆盖base_user
实例上的错误:
base_user.errors.each do |name, value|
@user.errors.set(name, value)
end
您可能需要考虑两个对象都有错误的情况,而用另一个对象覆盖可能不合适。