Forum: Ruby on Rails RE: Re: challenge

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
jviney (Guest)
on 2005-11-22 01:48
(Received via mailing list)
I have run in to the same problem. It happens because the individual
fixtures aren't loaded in the order they are declared in the YAML file.
I tracked this down to the fact that YAML::load simply returns a hash of
all fixtures in the file. A very simple way to fix this (if your
fixtures are declared in order of id) is to sort this hash before AR
tries to load it, therefore making sure the fixtures are loaded in the
correct order.

Change line 283 in lib/active_record/fixtures.rb to sort the fixtures
before inserting them:

values.sort { |a, b| a["id"].<=>(b["id"]) }.each do |fixture|

So they will inserted in order of id.

That partially fixes the problem, although there are still issues
surrounding foreign keys/testing/fixtures.

Cheers, -Jonny.
From: removed_email_address@domain.invalid
[mailto:removed_email_address@domain.invalid] On Behalf Of M Daggett
Sent: Tuesday, 22 November 2005 12:04 p.m.
To: removed_email_address@domain.invalid
Subject: Re: [Rails] Re: challenge

I am having a similar problem, I have a category model which is defined
to "acts_as_tree". The table structure looks like this:

create table categories (
id           INT          not null auto_increment,
name         VARCHAR(200) not null,
parent_id    int,
description  TEXT ,
created_on   DATETIME     null,
updated_on   DATETIME     null,
constraint fk_categories_to_categories    foreign key (parent_id)
references categories(id),
primary key (id)

as you can see the foreign key is a reference to another row in the
table. For the root category I just have (NULL) specified for the
parent_id. However all of my unit tests are blowing up because it cannot
find the parent category for the root category (because it does not

1) Error:
ActiveRecord::StatementInvalid: #23000Cannot delete or update a parent
row: a foreign key constraint fails (`itsthes_test/categories`,
categories_to_categories` FOREIGN KEY (`parent_id`) REFERENCES
`categories` (`id`)): DELETE FROM categories

Does anyone have an idea how to solve this problem?


On 11/14/05, Joe B. <removed_email_address@domain.invalid> wrote:
thanks all the guys reply my "challenge".
and "liquid" give us a good link
it's solve this kind of problem.


Posted via
Rails mailing list

I am Mark Daggett and I approve this message.
heavysixer (Guest)
on 2005-11-22 05:29
(Received via mailing list)
Hey Jonathan,
You are exactly right. It seems the real trick is not to just use a
structured YAML file but to also inform the test how to load and remove
records for use in the fixture. Right now my tests are all breaking
I have one table of images that contains a foreign key to its respective
category. The category in turn has a key to its parent. When the
run for the first test it creates the images but when it comes time to
delete the categories and create them again for the next test it bombs
because of the image's dependencies implicit in the foreign key

Seems pretty tricky but at the same time foreign keys seems so obvious
necessary that the fact that I am struggling at it makes me feel I am
rails wrong (especially since it is so database centric). I am using
and I am wondering if I might have less problems using POSTGRES or
something. Thanks for your tip, I'll try it out and report back.

This topic is locked and can not be replied to.