# Fixtures using csv

**URL:** <https://www.ruby-forum.com/t/fixtures-using-csv/107237>\
**Category:** Rails\
**Created:** [June 19, 2007, 2:16pm UTC](https://www.ruby-forum.com/t/fixtures-using-csv/107237 "2007-06-19T14:16:35Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Florian\_ASSSSmann](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/48db29/32.png) [@Florian\_ASSSSmann](https://www.ruby-forum.com/u/Florian_ASSSSmann)\
**Post date:** [June 19, 2007, 2:16pm UTC](https://www.ruby-forum.com/t/fixtures-using-csv/107237/1 "2007-06-19T14:16:35Z")

</div>

Hi there,

I got a Problem using comma-seperated-values as fixtures. It simply does  
not fixture anything, no error message at all. ☹

Here my code (… =\> RAILS\_ROOT):

# the test in …/test/unit/uk/incode\_test.rb

require File.dirname( **FILE** ) + ‘/…/…/test\_helper’

class UK::IncodeTest \< Test::Unit::TestCase  
fixtures File.join( ‘uk’, ‘uk\_incodes’ )

def test\_class\_for  
# Returns record for provided incode.code and caches set  
time\_before = Time.now  
assert\_nil UK::Incode.for(‘0000’)  
distance = Time.now - time\_before

```
time_before = Time.now
assert_instance_of UK::Incode, UK::Incode.for('PH50')

# stupid test...
assert distance > Time.now - time_before

```

end

end

# the csv in …/test/fixtures/uk/uk\_incodes.csv

code, posttown, county  
AB10, ABERDEEN, Aberdeenshire  
AB11, ABERDEEN, Aberdeenshire  
AB12, ABERDEEN, Aberdeenshire  
AB13, MILLTIMBER, Aberdeenshire  
AB14, PETERCULTER, Aberdeenshire  
AB15, ABERDEEN, Aberdeenshire

# _snip_

# the model in …/app/models/uk/incode.rb

module UK  
class Incode \< ActiveRecord::Base  
set\_table\_name ‘uk\_incodes’

```
validates_presence_of :code
validates_presence_of :county

@@postcodes = Hash.new

# Returns record for provided incode.code and caches set
def self.for code
  if @@postcodes.empty?
    self.find( :all ).each do |postcode|
      @@postcodes[postcode.code.to_sym] = postcode
    end
  end
  p @@postcodes

  @@postcodes[code.to_sym]
end

```

end  
end

Thanks for any advice  
Florian

---

<div class="post-metadata">

**Author:** ![Florian\_ASSSSmann](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/48db29/32.png) [@Florian\_ASSSSmann](https://www.ruby-forum.com/u/Florian_ASSSSmann)\
**Post date:** [June 19, 2007, 2:35pm UTC](https://www.ruby-forum.com/t/fixtures-using-csv/107237/2 "2007-06-19T14:35:41Z")

</div>

Florian Aßmann wrote:

> Hi there,
> 
> I got a Problem using comma-seperated-values as fixtures. It simply does  
> not fixture anything, no error message at all. ☹  
> [snip]  
> class UK::IncodeTest \< Test::Unit::TestCase  
> fixtures File.join( ‘uk’, ‘uk\_incodes’ )

This fixtures call does not seem like it is correct. At least not from  
what I can gather from the API docs. Have you tried reading:

[http://api.rubyonrails.com/classes/Fixtures.html](http://api.rubyonrails.com/classes/Fixtures.html)

–  
Cheers,

- Jacob A.

---

<div class="post-metadata">

**Author:** ![Florian\_ASSSSmann](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/48db29/32.png) [@Florian\_ASSSSmann](https://www.ruby-forum.com/u/Florian_ASSSSmann)\
**Post date:** [June 19, 2007, 9:58pm UTC](https://www.ruby-forum.com/t/fixtures-using-csv/107237/3 "2007-06-19T21:58:47Z")

</div>

Hi,

I tried to reproduce your problem but it works perfectly in my  
environment. Maybe you should check that there is no uk\_incodes.yml file  
in the same directory than the CSV fixtures file?

Simon

---

<div class="post-metadata">

**Author:** ![Florian\_ASSSSmann](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/48db29/32.png) [@Florian\_ASSSSmann](https://www.ruby-forum.com/u/Florian_ASSSSmann)\
**Post date:** [June 20, 2007, 10:33pm UTC](https://www.ruby-forum.com/t/fixtures-using-csv/107237/4 "2007-06-20T22:33:42Z")

</div>

Florian Aßmann wrote:

> parameter because I put the fixture into a subdir it worked.
> 
> Maybe some update in Rails Fixtures or so… ☹

Just for the record, what version of Rails are you using? My first test  
was with Rails 1.2.3. I have double checked with Rails Edge (revision  
7071) and it’s still working…

Simon

---

<div class="post-metadata">

**Author:** ![Florian\_ASSSSmann](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/48db29/32.png) [@Florian\_ASSSSmann](https://www.ruby-forum.com/u/Florian_ASSSSmann)\
**Post date:** [June 21, 2007, 11:45am UTC](https://www.ruby-forum.com/t/fixtures-using-csv/107237/5 "2007-06-21T11:45:47Z")

</div>

Hi Simon,

I’m using Version 1.2.3 too.

Regards  
Florian

---

<div class="post-metadata">

**Author:** ![Florian\_ASSSSmann](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/48db29/32.png) [@Florian\_ASSSSmann](https://www.ruby-forum.com/u/Florian_ASSSSmann)\
**Post date:** [June 20, 2007, 8:45am UTC](https://www.ruby-forum.com/t/fixtures-using-csv/107237/6 "2007-06-20T08:45:40Z")

</div>

Hi Simon

> I tried to reproduce your problem but it works perfectly in my  
> environment. Maybe you should check that there is no uk\_incodes.yml file  
> in the same directory than the CSV fixtures file?

No, there isn’t. I moved uk/uk\_incodes.csv to uk\_incodes.csv and used  
the syntax ‘fixtures :uk\_incodes’ (thanks for the hint Jacob) and it  
worked right out of the box. The last time I used a String as fixtures  
parameter because I put the fixture into a subdir it worked.

Maybe some update in Rails Fixtures or so… ☹

Thanks  
Florian
