我尝试使用Fabrication gem 在 Rails 项目的开发中填充数据库。
问题是我确实觉得 Fabrication 是一个非常强大的工具,但是除了简单的关联之外我什么也做不了。
例如,我有以下型号
class User < ActiveRecord::Base
has_many :order, :dependent => :destroy
has_many :src_reviews, :class_name => 'Review', :foreign_key => '...'
has_many :dst_reviews, :class_name => 'Review', :foreign_key => '...'
class Review < ActiveRecord::Base
belongs_to :src_user, :class_name => 'User', :foreign_key => '...'
belongs_to :dst_user, :class_name => 'User', :foreign_key => '...'
end
class Order < ActiveRecord::Base
belongs_to :user
不要让考虑不同的场景。
我确实知道如何实现从订单到用户的简单关联
Fabricator(:order) do
...
user { Fabricate(:user) }
end
Fabricator(:user) do
...
end
问:但是我不知道我是否可以做对面。
Fabricator(:order) do
...
end
Fabricator(:user) do
orders {#somehow create 5 orders for each user}
end
最困难的魔法是如何使用src_user和dst_user来制作评论,以便以某种方式将它们混合在一起,最好让用户给出很多评论而同一用户收到很多评论。
感谢您的帮助。