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

回答編集履歴

2

微調整

2019/11/30 14:57

投稿

murata0705
murata0705

スコア19

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  僕も同じエラーに遭遇したので調べてみました。gemのバグだと思います。
2
2
 
3
- 原因は、`20191130135317_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb`の15行目で外部キーを設定しているにも関わらず、
3
+ 原因は、`db/migrate/20191130135317_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb`の15行目で外部キーを設定しているにも関わらず、
4
4
 
5
5
  ```ruby
6
6
  t.references :tag, foreign_key: { to_table: ActsAsTaggableOn.tags_table }

1

シンタックスハイライトが効いていなかったので修正

2019/11/30 14:57

投稿

murata0705
murata0705

スコア19

answer CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  原因は、`20191130135317_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb`の15行目で外部キーを設定しているにも関わらず、
4
4
 
5
- ```db/migrate/20191130135317_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb
5
+ ```ruby
6
6
  t.references :tag, foreign_key: { to_table: ActsAsTaggableOn.tags_table }
7
7
  ```
8
8
 
9
9
  `db/migrate/20191130144523_add_missing_unique_indices.acts_as_taggable_on_engine.rb`の11行目で外部キーを削除せずにインデックスを削除しようとしているからですね。
10
10
 
11
- ```20191130144523_add_missing_unique_indices.acts_as_taggable_on_engine.rb
11
+ ```ruby
12
12
 
13
13
 
14
14
  remove_index ActsAsTaggableOn.taggings_table, :tag_id if index_exists?(ActsAsTaggableOn.taggings_table, :tag_id)
@@ -17,7 +17,7 @@
17
17
 
18
18
  インデックス削除前にこんな感じで外部キーを削除してあげれば想定通りの動きをしますが、コメントアウトでも変わらない気がします。ちゃんと発行されているSQLは確認していませんが。
19
19
 
20
- ```20191130144523_add_missing_unique_indices.acts_as_taggable_on_engine.rb
20
+ ```ruby
21
21
  if index_exists?(ActsAsTaggableOn.taggings_table, :tag_id)
22
22
  remove_foreign_key :taggings, :tags
23
23
  remove_index ActsAsTaggableOn.taggings_table, :tag_id