gpt4 book ai didi

ruby-on-rails - 确保记录关联到仅由具有规范的父级拥有的记录相关联的测试验证

转载 作者:行者123 更新时间:2023-11-28 20:15:56 25 4
gpt4 key购买 nike

我有模型类别,它具有并属于许多包。当用户在类别中创建帖子时,它必须属于其类别中的包。

这是自定义验证器的代码:

class PackageValidator < ActiveModel::Validator
def validate(record)
record.errors[:package_id] <<
I18n.t('errors.messages.package.not_in_category') unless
record.category.packages.include? record.package
end
end

这一切都很好,但它打破了我所有的 rspec 测试(使用 factory_girl),因为 factory_girl 为每个类别创建了一个新包,我用它构建/创建了发布。

这是我的工厂:

factory :category do
sequence(:name) {|n| "Parts#{n}"}
sequence(:slug) {|n| "parts#{n}"}
packages {[FactoryGirl.create(:package)]}
end

factory :posting do
title 'Foo'
body 'Bar'
category
package
end

factory :package do
sequence(:name) {|n| "Basic#{n}"
price 0
photos 5
end

我怎样才能让它们很好地协同工作?

最佳答案

您可以在 after(:build) Hook 中将包设置为 category.packages.first

关于ruby-on-rails - 确保记录关联到仅由具有规范的父级拥有的记录相关联的测试验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14078583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com