Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails Seed confusion

I'm having trouble seeding my database using seed.rb, specifically where table relationships are concerned.

Here's a sample of the code:

# seed.rb
user = User.find_or_create_by_login(  
  :login => "myname",  
  :email => "[email protected]",  
  :user_type => "Admin",  
  :password => "admin",  
  :password_confirmation => "admin")

project = Project.find_or_create_by_user_id(
  :user_id => user.id,
  :name => "Test Project")

When project is created (along with other unrelated parameters I've left out from above), user_id is empty. How can I get this to work?


This is the strangest behavior I've seen in something so simple. In my seed file, I have about eight tables being created and some are nested 3-4 levels deep (i.e. user has_many projects; projects has_many tasks, etc.).

When I call user user as above and reference user.id multiple times after that, it only works once! I tried adding [user.reload] before each new record is created but to no avail. I don't imagine this will make sense to anyone, but are there any possibilities here? Thanks all.

like image 984
sscirrus Avatar asked Feb 25 '23 11:02

sscirrus


1 Answers

I figured out what the problem was. The fields that weren't populating were not listed explicitly in attr_accessible in their respective models. The fields listed were being saved correctly.

Thank you very much for your help everyone.

like image 183
sscirrus Avatar answered Mar 06 '23 18:03

sscirrus