Chciałem skorzystać w Populatora w celu zapełnienia tabel danymi.
tabele są połączone poprzez has_and_belongs_to_many.
Tabele to Books i Categories.
Gdy próbuję czegoś takiego:
BooksCategories.populate 300 do |bk|
bk.book_id = 1..100
bk.category_id = 1..25
end
to otrzymuję informację o braku modelu (co w sumie jest logiczne)
a gdy chcę to zrobić tak (na początek po jednej wartości, później można to zapętlić):
Book.populate 100 do |book|
book.title = Populator.words(1..5).titleize
book.description = Populator.sentences(2..10)
book.year = 1913..Time.now.year
book.isbn = [*('A'..'Z'),*('0'..'9')].sample(13).join
book.category_ids = 1..25
end
to otrzymuję informację o braku metody (category_ids jest w attr_accessible i poprzez formularz normalnie dodaje mi rekordy do tabeli buforowej).
Nie mogę wygooglać żadnego rozwiązania, może Wy mi pomożecie
nie opisałem dokładnie problemu.
prócz tabeli categories jest jeszcze tabela authors, w takiej samej relacji.
dlatego po wygenerowaniu kategorii i autorów, chciałem każdej książce przypisać po kilka kategorii i kilku autorów.
zmodyfikowałem, problem nadal występuje.
undefined method `category_id’ for #Populator::Record:0x00000809a8d660
w przykładzie relacja jest pewnie zdefiniowana przy pomocy :through
belongs_to :book
belongs_to :author
attr_accessible :book_id, :author_id
end[/code]
Kolejno z każdym to samo powinieneś zrobić. Generalnie bardziej zalecane tworzenie jest has_many through, niż HABTM z tego powodu, że masz większą elastyczność w definiowaniu modeli.