teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

タイトル編集、誤植修正

2016/06/23 07:14

投稿

yuukive
yuukive

スコア40

title CHANGED
@@ -1,1 +1,1 @@
1
- activerecord-importを使用したバルクインサートで親子モデルの同時保存
1
+ [Rails] activerecord-importを使用したバルクインサートで親子モデルの同時保存
body CHANGED
@@ -26,8 +26,8 @@
26
26
  子モデルも一緒にINSERTされるはずなのですが、オプションの有無関わらず親しか保存されません。
27
27
  (保存時にエラーは特に表示されません)
28
28
 
29
- また、booksとは別にauthoersという配列を作り、Book保存後に`Author.imoport authoers`として
29
+ また、booksとは別にauthorsという配列を作り、Book保存後に`Author.imoport authors`として
30
- 別々に保存することも試みたのですが、結局Book.impooertを使ってbookを保存した後に
30
+ 別々に保存することも試みたのですが、結局Book.importを使ってbookを保存した後に
31
31
  それぞれのbookのidが分からず、authoerとのリレーションをキープできずに断念しました。
32
32
 
33
33
  GEM使用有無にかかわらず、なんとか親子同時にバルクインサートできないでしょうか。

1

コード修正

2016/06/23 07:13

投稿

yuukive
yuukive

スコア40

title CHANGED
File without changes
body CHANGED
@@ -13,8 +13,9 @@
13
13
  # Book has_many authors / Author belongs to Book という関係になっています。
14
14
  books = []
15
15
  10000.times do |i|
16
+ book = Book.new(:name => "book #{i}")
16
- author = Author.new(:name => "author #{i}")
17
+ book.author.build(:name => "author #{i}")
17
- books << Book.new(:name => "book #{i}", :authoer => author)
18
+ books << book
18
19
  end
19
20
  Book.import books, recursive: true
20
21