Rails4.1升级6.1引入foreigner gem后出现alias_method_chain未定义错误
问题根因
alias_method_chain是Rails 5.0就废弃的API,Rails 6.1已经将其完全移除,调用该方法会直接抛出未定义错误- 你引入的
foreignergem是专为Rails 4.2及更低版本设计的外键扩展工具,Rails 5.0及以上版本已经原生支持外键的定义、导出、校验全链路功能,该gem早已停止维护,完全不兼容Rails 5+版本,源码中仍在使用已被移除的alias_method_chain方法是报错的直接原因。
可行解决方案
- 删除Gemfile中
foreignergem的引入声明,执行bundle install更新依赖 - 无需修改原有迁移文件、schema.rb的外键相关代码:Rails原生外键语法完全兼容
foreigner的旧语法,移除gem后直接运行rake任务即可正常执行。
内容的提问来源于stack exchange,提问作者santu prajapati
相关产品推荐
相关产品推荐

