У меня есть модель, аналогичная модели Categories
, обсуждаемой в в этом предыдущем обсуждении отношений "многие ко многим" .Вкратце, у меня есть много категорий акций (~ 200 категорий), которые я хочу загрузить для всех пользователей.Я хочу has_and_belongs_to_many relationship
, чтобы я мог легко найти тех пользователей, которые имеют различные категории, и подсчитать количество пользователей в каждой категории.Если пользователь удаляет использование своей категории, мне нужно, чтобы она была доступна другим, даже если никто ее не использует.
Я получил ее для работы в консоли и в режиме разработки, но этопохоже, не работает в тестовом режиме, что заставляет меня думать, что должен быть лучший способ сделать это.
В db/seeds.rb
, у меня есть массив ...
c = [ "Category 1", "Category 2", "Category 3", "Category 4" ]
c.each { |cat| Category.create!(category: cat)}
Я знаю, что есть проблема в тестовом режиме, потому что, если я включу ...
$stdout.print Category.first.category
в тест, я получу ...
Error:
CategoryTest#test_should_be_valid:
NoMethodError: undefined method `category' for nil:NilClass
test/models/category_test.rb:17:in `block in <class:CategoryTest>'
В качестве альтернативы, если яdo ...
Category.create!(category: "Category 5")
$stdout.print Category.first.category
Он выводит Category 5
.
Есть какие-нибудь идеи о лучшем способе инициализации Category
объектов и как я могу его увидеть в тестовом режиме?