Undefined method assert_valid_keys

Guys,

I’m having trouble understanding why I am getting the following error
message. I’ve double checked my code and everything looks good. Can
anyone share any insight into the message?

Thanks!

John


undefined method assert_valid_keys' for :hangars:Symbol (NoMethodError) /usr/lib/ruby/gems/1.8/gems/activerecord-1.13.2/lib/active_record/associations.rb:343:inhas_many_without_reflection’
(eval):5:in has_many' script/../config/../app/models/site.rb:3 /usr/lib/ruby/gems/1.8/gems/activesupport-1.2.5/lib/active_support/dependencies.rb:207:inload’
/usr/lib/ruby/gems/1.8/gems/activesupport-1.2.5/lib/active_support/dependencies.rb:39:in
require_or_load' /usr/lib/ruby/gems/1.8/gems/activesupport-1.2.5/lib/active_support/dependencies.rb:22:independ_on’
/usr/lib/ruby/gems/1.8/gems/activesupport-1.2.5/lib/active_support/dependencies.rb:178:in
require_dependency' /usr/lib/ruby/gems/1.8/gems/activesupport-1.2.5/lib/active_support/dependencies.rb:178:inrequire_dependency’
/usr/lib/ruby/gems/1.8/gems/activesupport-1.2.5/lib/active_support/dependencies.rb:194:in
const_missing' ./script/../config/../app/controllers/status_controller.rb:18:inchoose_site’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/base.rb:853:in
perform_action_without_filters' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/filters.rb:332:inperform_action_without_benchmark’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/benchmarking.rb:69:in
perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/benchmarking.rb:69:inmeasure’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/benchmarking.rb:69:in
perform_action_without_rescue' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/rescue.rb:82:inperform_action’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/base.rb:369:in
process_without_session_management_support' /usr/lib/ruby/gems/1.8/gems/actionpack-1.11.2/lib/action_controller/session_management.rb:116:inprocess’
/usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/dispatcher.rb:38:in
dispatch' /usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/webrick_server.rb:117:inhandle_dispatch’
/usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/webrick_server.rb:83:in
service' /usr/lib/ruby/1.8/webrick/httpserver.rb:104:inservice’
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in run' /usr/lib/ruby/1.8/webrick/server.rb:172:instart_thread’
/usr/lib/ruby/1.8/webrick/server.rb:161:in start' /usr/lib/ruby/1.8/webrick/server.rb:161:instart_thread’
/usr/lib/ruby/1.8/webrick/server.rb:95:in start' /usr/lib/ruby/1.8/webrick/server.rb:92:ineach’
/usr/lib/ruby/1.8/webrick/server.rb:92:in start' /usr/lib/ruby/1.8/webrick/server.rb:82:instart’
/usr/lib/ruby/1.8/webrick/server.rb:82:in start' /usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/webrick_server.rb:69:indispatch’
/usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/commands/servers/webrick.rb:59
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:21:in require' /usr/lib/ruby/gems/1.8/gems/activesupport-1.2.5/lib/active_support/dependencies.rb:214:inrequire’
/usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/commands/server.rb:28
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:21:in require' /usr/lib/ruby/gems/1.8/gems/activesupport-1.2.5/lib/active_support/dependencies.rb:214:inrequire’
./script/server:3

Hi John,

I also have the same issue with rails, did you fix it? if so please send
me something because i’m getting mad

thanks!!

Longshot, but I had this problem when I tried to put multiple relations
on the same line, like

class Appln < ActiveRecord::Base
belongs_to :viewer, :form
end

I had to change it to

class Appln < ActiveRecord::Base
belongs_to :viewer
belongs_to :form
end

-Andrew

John W. wrote:

Guys,

I’m having trouble understanding why I am getting the following error
message. I’ve double checked my code and everything looks good. Can
anyone share any insight into the message?

Thanks!

John


undefined method `assert_valid_keys’ for :hangars:Symbol (NoMethodError)

That worked, for whatever reason. Thanks!

Guest wrote:

Longshot, but I had this problem when I tried to put multiple relations
on the same line, like

class Appln < ActiveRecord::Base
belongs_to :viewer, :form
end

I had to change it to

class Appln < ActiveRecord::Base
belongs_to :viewer
belongs_to :form
end

-Andrew

Thanks, worked like a magic.

undefined method `assert_valid_keys’

occurred for me when I made a method called ‘sum’ for my /app/duckage.rb
just-for-fun model called Duckage. In general, it seems like you
should avoid using built-in ruby method names. (For example, “sum” is
built into some Ruby classes like Array. Also avoid using built-in
method names for the names of your table columns. The reason is cuz
Rails relies on method missing, which looks up all the methods in the
inheiritance hierarchy all the way down to Ruby’s Object and Kernel
classes and if it doesn’t find anything it creates an attr_accessor
method on the fly. I really should test this hypothesis before posting
it, but I’m pretty sure Rails works like this.

David :slight_smile:

Elliott Pogue wrote:

That worked, for whatever reason. Thanks!

Guest wrote:

Longshot, but I had this problem when I tried to put multiple relations
on the same line, like

class Appln < ActiveRecord::Base
belongs_to :viewer, :form
end

I had to change it to

class Appln < ActiveRecord::Base
belongs_to :viewer
belongs_to :form
end

-Andrew

Thank you so much Andrew !!!

Longshot, but I had this problem when I tried to put multiple relations
on the same line, like

class Appln < ActiveRecord::Base
belongs_to :viewer, :form
end

I had to change it to

class Appln < ActiveRecord::Base
belongs_to :viewer
belongs_to :form
end

-Andrew