得到mongoid< - >制造不工作habtm

时间:2012-11-14 04:14:21

标签: ruby-on-rails-3 mongoid3 fabrication-gem

我有一个问题       “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

1 个答案:

答案 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