回答編集履歴
2
微調整
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
シンタックスハイライトが効いていなかったので修正
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
|
-
```
|
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
|
-
```
|
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
|
-
```
|
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
|