Переход с активной записи / postgres на mongodb / mongoid, и я не могу создать / сохранить - PullRequest
0 голосов
/ 14 июля 2020

У меня есть следующие модели в mongoid (т. Е. Ранее были в активной записи). Пытаюсь сохранить группу элементов продукта вместе с опцией выбора элемента, но у меня нет ошибки метода «all_of». И я новичок в использовании mongoid / mongobd с ROR.

class ProductItemGroup
  include Mongoid::Document
  include Mongoid::Timestamps

  store_in database: "cnc_product_ms"
  field :name, localize: true
  field :description, localize: true
  field :product_item_selection_type, type: String

  embeds_one :item_selection_option
  has_and_belongs_to_many :service_categories
  field :service_category_ids, type: Array
end

class ItemSelectionOption
  include Mongoid::Document
  include Mongoid::Timestamps
  include SimpleEnum::Mongoid
  store_in database: "cnc_product_ms"

  as_enum :selection_type,multiple: 1, single: 2
  as_enum :mandatory_selection_type,  atleast_one: 1, many: 2

  field :selection_type, type: Integer
  field :selection_mandatory, type: Boolean,  default: false
  field :mandatory_selection_type, type: Integer
  
  embedded_in :product_item_group
end


controller /form 
class ProductItemGroupForm < ApplicationForm
  attr_accessor(:product_item_group)

  def create
    @product_item_group = ProductItemGroup.new(params)
    @product_item_group.save!
  end
end

при сохранении !, Я столкнулся со следующей ошибкой

NoMethodError: undefined method `all_of' for #<Class:0x00007fd96afea600>
from /Users/90srebel/.rvm/gems/ruby-2.6.4/gems/activerecord-6.0.3.1/lib/active_record/dynamic_matchers.rb:22:in `method_missing'

1 Ответ

0 голосов
/ 14 июля 2020

Понятно. Я закрываю этот вопрос. Что я сделал неправильно, так это то, что я объявил has_and_belongs_to_many в модели product_item_group, но забыл объявить то же самое в модели service_category. Глупо

...