undefined method 'xxx' for {}:Hash rake db:migrate

Hi

I just installed rails 3 (3.0.3) and am trying to create a rake task. I am seeing this:

rake aborted! undefined method `name' for #<Hash:0x102ea4a68>

my rake task (simplified) is as follows:

namespace :app do   desc 'Create dummy data'   task :setup => :environment do     [       { :name => 'Test User', :email => 'test@xxx.com' },     ].each do |client|       puts '-----------------'       puts client.name     end   end end

Its barfing on that puts client.name

This appears to be an older bug. The solution hinted at here

http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/d3e6af81dcbcce31/fded05c2c519a31f?lnk=gst&q=rake+aborted!+undefined+method+\`name&#39;\+for\+%23<Hash\#fded05c2c519a31f

is not working for me as rails 3 has a strong dependency on rake 0.8.7.

Anyone else seeing this problem?

Hi

I just installed rails 3 (3.0.3) and am trying to create a rake task. I am seeing this:

rake aborted! undefined method `name' for #<Hash:0x102ea4a68>

my rake task (simplified) is as follows:

namespace :app do desc 'Create dummy data' task :setup => :environment do [ { :name => 'Test User', :email => 'test@xxx.com' }, ].each do |client| puts '-----------------' puts client.name

Should that be client[:name]

Colin

Hi

I just installed rails 3 (3.0.3) and am trying to create a rake task. I am seeing this:

rake aborted! undefined method `name' for #<Hash:0x102ea4a68>

my rake task (simplified) is as follows:

namespace :app do desc 'Create dummy data' task :setup => :environment do [ { :name => 'Test User', :email => 't...@xxx.com' }, ].each do |client| puts '-----------------' puts client.name end end end

Your code just looks wrong to me - you're iterating over an array of hashes, so client is a hash. Hashes don't have a name method so client.name blows up. Did you mean client[:name] or intend to use that data to create an active record object first?

Fred