mar*_*rie 3 ruby-on-rails factory-bot
我是工厂新手,我需要关联和嵌套属性的帮助......
如何将图像附加到产品上?好的
如何设置产品的尺寸(嵌套属性)
用户.rb
has_many :products
Run Code Online (Sandbox Code Playgroud)
产品.rb
belongs_to :user
belongs_to :category
has_many :sizes, inverse_of: :product, dependent: :destroy #nested_attributes
Run Code Online (Sandbox Code Playgroud)
大小.rb
belongs_to :product
Run Code Online (Sandbox Code Playgroud)
类别.rb
has_many :products
Run Code Online (Sandbox Code Playgroud)
工厂/用户.rb
FactoryBot.define do
factory :user do
first_name { Faker::Name.first_name}
last_name { Faker::Name.last_name }
admin { [false, true].sample }
sequence(:email) { |n| "#{n}#{Faker::Internet.email}" }
birth_date {"20/10/1997"}
password { 'password'}
end
end
Run Code Online (Sandbox Code Playgroud)
工厂/类别.rb
FactoryBot.define do
factory :category do
title { Faker::Artist.name }
end
end
Run Code Online (Sandbox Code Playgroud)
工厂/尺寸.rb
FactoryBot.define do
factory :size do
size_name {["S", "M", "L", "XL"].sample }
quantity { Faker::Number.number(2) }
end
end
Run Code Online (Sandbox Code Playgroud)
工厂/产品.rb
FactoryBot.define do
factory :product do
title { Faker::Artist.name}
ref { Faker::Number.number(10)}
price { Faker::Number.number(2) }
color { Faker::Color.color_name }
brand { Faker::TvShows::BreakingBad }
description { Faker::Lorem.sentence(3) }
size
category
# how to set an admin ??
end
end
Run Code Online (Sandbox Code Playgroud)
t s*_*t s 10
添加这样的关联
对于产品
FactoryBot.define do
factory :product do
user {User.first || association(:user)}
user {User.first || association(:user, admin: true)}
# your admin attribute (role: admin or admin: true) whatever you are using for admin
category {Category.first || association(:category)}
end
end
Run Code Online (Sandbox Code Playgroud)
阅读FactoryBot协会希望对您有所帮助。
| 归档时间: |
|
| 查看次数: |
12277 次 |
| 最近记录: |