ActiveRecord :: InvalidForeignKey

拉斐尔

我正在使用mysql 5.5和Rails 3.2.13。我有这样的表:

'CREATE TABLE `visit` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `uri` varchar(2048) COLLATE utf8_unicode_ci NOT NULL,
  `remote_ip` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `user_agent` varchar(2048) COLLATE utf8_unicode_ci NOT NULL,
  `client_id` bigint(20) DEFAULT NULL,
  `position_id` bigint(20) DEFAULT NULL,
  `job_posting_id` bigint(20) DEFAULT NULL,
  `assessment_id` bigint(20) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idv_visit_assess_id` (`assessment_id`),
  KEY `fk_visit_client` (`client_id`),
  KEY `fk_visit_position` (`position_id`),
  KEY `fk_visit_job_posting` (`job_posting_id`)
) ENGINE=InnoDB AUTO_INCREMENT=28649 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci'

这样的模型:

class Visit < ActiveRecord::Base
  has_many :visit_actions
end

我有时会在生产日志中观察到此类错误(“ remote_ip”已更改):

#<ActiveRecord::InvalidForeignKey: ActiveRecord::JDBCError: Cannot add or update a child row: a foreign key constraint fails (`hirex/visit`, CONSTRAINT `fk_visit_job_posting` FOREIGN KEY (`job_posting_id`) REFERENCES `job_posting` (`id`)): INSERT INTO `visit` (`assessment_id`, `client_id`, `created_at`, `job_posting_id`, `position_id`, `remote_ip`, `updated_at`, `uri`, `user_agent`) VALUES (NULL, NULL, '2013-09-13 00:25:02', 8716, NULL, '127.0.0.1', '2013-09-13 00:25:02', '/applicant/exit_job_posting', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)')>

我花了几天时间尝试重现此问题,但没有成功。如果我要插入null而不是真实的'job_posting_id'或不令人兴奋的job_posting的ID,也可以。

有任何想法吗?

BroiSatse

发生的事情是您(或其他人正在尝试添加job_posting_id中不存在的内容job_posting。我没有太多代码可以说明为什么会发生这种情况,最常见的原因之一是有人呈现了表单(与job_posting选择)和前提交,否则除去给别人job_posting

在没有外键约束的情况下,Rails的工作效率非常高-强制执行它们有任何特殊原因吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ActiveRecord :: InvalidForeignKey

来自分类Dev

通过关系在has_many上的ActiveRecord :: InvalidForeignKey

来自分类Dev

购物车/结帐 ActiveRecord::InvalidForeignKey (PG::ForeignKeyViolation: ERROR on Heroku 但不是 Localhost

来自分类Dev

ActiveRecord :: PendingMigrationError?

来自分类Dev

ActiveRecord关联

来自分类Dev

ActiveRecord :: ReadOnlyRecord

来自分类Dev

使用ActiveRecord

来自分类Dev

ActiveRecord关联

来自分类Dev

ActiveRecord :: PendingMigrationError?

来自分类Dev

ActiveRecord加入

来自分类Dev

ActiveRecord关联

来自分类Dev

ActiveRecord :: ReadOnlyRecord

来自分类Dev

ActiveRecord总和

来自分类Dev

sinatra的ActiveRecord或sinatra-activerecord

来自分类Dev

ActiveRecord和ActiveRecord :: Relation对象之间的区别

来自分类Dev

ActiveRecord和ActiveRecord :: Relation对象之间的区别

来自分类Dev

如何找回ActiveRecord而不是ActiveRecord关系?

来自分类Dev

ActiveRecord查询数组的交集?

来自分类Dev

哪个ActiveRecord查询更快?

来自分类Dev

Order an ActiveRecord relation object

来自分类Dev

ActiveRecord验证器链接

来自分类Dev

遍历ActiveRecord :: Associations :: CollectionProxy

来自分类Dev

ActiveRecord或Arel中的查询

来自分类Dev

Rails ActiveRecord类型约束

来自分类Dev

ActiveRecord与ID数组连接

来自分类Dev

Rails ActiveRecord where子句

来自分类常见问题

禁用ActiveRecord for Rails 4

来自分类Dev

SQL注入和ActiveRecord

来自分类Dev

订购ActiveRecord关系对象