- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用的是 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,那没关系。
有什么想法吗?
最佳答案
发生的事情是您(或其他人正在尝试添加 job_posting
表中不存在的 job_posting_id
。我没有太多代码可以说出为什么会发生这种情况,最常见的原因之一是有人呈现了一个表单(使用 job_posting
选择)并且在提交之前,其他人删除了 job_posting
。
在没有外键约束的情况下,Rails 的工作效率非常高 - 是否有任何特殊原因强制执行它们?
关于mysql - ActiveRecord::InvalidForeignKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21115876/
我使用的是 mysql 5.5 和 Rails 3.2.13。我有这样的表: 'CREATE TABLE `visit` ( `id` bigint(20) NOT NULL AUTO_INCRE
当我尝试从我的库存数据库中删除某些内容时,出现此错误: ActiveRecord::InvalidForeignKey in InventoriesController#destroy SQLite3
在 ActiveAdmin 中,当我想删除用户时出现以下错误: ActiveRecord::InvalidForeignKey in Admin::UsersController#destroy PG
在我使用 postgresql 的 Rails 4 应用程序中,我遇到了一个我似乎无法理解的错误: Completed 500 Internal Server Error in 6ms (Active
ActiveRecord::InvalidForeignKey in ArticlesController#destroy SQLite3::ConstraintException: FOREIGN
我的模型: class Foo < ActiveRecord::Base has_many :bars, inverse_of: :foo accepts_nested_attributes_
我有一个Book 模型和一个User 模型。我正在尝试在 books 表中创建一个名为 author_id 的新列,它实际上是 users 表的外键。 我关注了this article by Josh
我遇到了 Minitest 和关联 ActiveRecord 模型 (Rails.4.2.3) 的问题。 这是两个模型: # vanguard_fund.rb class VanguardFund <
我是一名优秀的程序员,十分优秀!