У меня это к классам:
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)