Проблемы с заводской девочкой и монгоидом - PullRequest
0 голосов
/ 11 апреля 2019

У меня это к классам:

class User
     ...
has_and_belongs_to_many :posts
     ...
end

class Post
     ...
has_and_belongs_to_many :users

validates :user_ids, presence: true
     ...
end

Тогда у меня тоже есть фабрики:

FactoryGirl.define do

   factory :user do
   end

end


FactoryGirl.define do

   factory :post do
   end

end

до того, как у меня есть валидация: user_ids ,sence: true, она работала хорошо, но когда я добавил эту валидацию, он сигнализирует об ошибке в форме, так что это хорошо. но rspec не работает:

    Mongoid::Errors::Validations:

      message:
        Validation of User failed.
      summary:
        The following errors were found: Customer ids can't be blank
      resolution:
        Try persisting the document with valid data or remove the validations.

Итак, я попробовал это:

ошибка на github, но для активной записи

сообщение в блоге

и пробовал вот это:

factory :post do
  before_create do |post|
    FactoryGirl.build(:user, post: post)
  end
end

или

before(:create) do |post|
  post.users << FactoryGirl.build(:user, post: post)
end

или

 before(:create) do |post|
      post.users << FactoryGirl.create(:user, post: post)
    end

или

users { create_list(:user, 2) }

или

users {[create (: user, posts: [])]}

но тогда я получаю:

 bundle exec rspec spec --colour --format documentation                                                                                                                                                
/Users/toni/.rvm/gems/ruby@my-project/bin/ruby_executable_hooks:15: stack level too deep (SystemStackError)
...