私は Rails 3.0.6/Ruby 1.8.7 を使用しており、acts_as_taggable_on (2.0.6) gem を動作させようとしましたが、デフォルトの移行では失敗するようです。ログ:
== ActsAsTaggableOnMigration: migrating ======================================
-- create_table(:tags)
-> 0.3175s
-- create_table(:taggings)
rake aborted!
An error has occurred, all later migrations canceled:
Mysql2::Error: Can't create table 'project_development.taggings' (errno: 150):
CREATE TABLE `taggings` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY,
`tag_id` int(11), `taggable_id` int(11), `taggable_type` varchar(255), `tagger_id`
int(11), `tagger_type` varchar(255), `context` varchar(255), `created_at` datetime,
FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`), FOREIGN KEY (`taggable_id`) REFERENCES
`taggables` (`id`), FOREIGN KEY (`tagger_id`) REFERENCES `taggers` (`id`)) ENGINE=InnoDB
したがって、 :polymorphic => true 属性が意図したとおりに機能しないようです。Google はあまり役に立たないようです (同様のバグが報告されています。例: http://www.ruby-forum.com/topic/194219 )。それを修正する方法はありますか?宝石の代替品?
解決済み automatic_foreign_key がこの gem と競合する