我有一个问题 “has_and_belongs_to_many”和“accept_nested_attributes_for” 在制作和mongoid的背景下
我有一个可以提供许多服务的位置
class Location
include Mongoid::Document
field :name
field :service
has_and_belongs_to_many :services, inverse_of: :locations, autosave: true, dependent: :delete
accepts_nested_attributes_for :services
attr_accessible :services, :name
class Service
include Mongoid::Document
field :name, type: String
has_and_belongs_to_many :locations, inverse_of: :services, autosave: true
accepts_nested_attributes_for :locations
attr_accessible :name, :icon, :description
在我的制作文件上我有这个
Fabricator(:service) do
initialize_with { Location.produce(:location) }
name "Service Name"
description "Lorem ipsum est lauda en radios"
location
end
Fabricator(:location) do
name "Special Club"
service
end
在这种情况下,我的rspec挂断了。
有人可以提供一个带有* accept_nested_attributes *和/或* has_and_belongs_to_many *的工作示例与mongoid和制作宝石(它与mongoid“开箱即用”?
有什么建议吗?
我正在使用mongoid3
答案 0 :(得分:3)
这一切都取决于您如何使用制作。
测试控制器的嵌套参数是一个受到伤害的世界,你需要为你的params哈希进行一些手工制作。
对于模特,你应该试试这个:
Fabricator(:service) do
name "Service Name"
description "Lorem ipsum est lauda en radios"
locations {[Fabricate.build(:location)]}
end
Fabricator(:location) do
name "Special Club"
service
end
您的关系可能不需要:inverse_of
。