class Foo < ActiveRecord::Base
has_one :bar
delegate :app, :to => :bar
end
class Bar < ActiveRecord::Base
belongs_to :app
def self.attribute_column_names
return @@attr_columns if defined?(@@attr_columns)
readers = content_columns.map { |n| n.name.intern } -
[:created_at,:updated_at]
@@attr_columns ||= readers.map { |k| [k, “#{k}=”.to_sym] }.flatten
end
end
This all worked fine until in the console in my staging and production
environments, I assigned bar.app to an undefined variable:
Bar.all.each do |p|
p.update_attribute(“app_id”, my_undefined_variable)
end
After doing this, I get:
NameError: undefined local variable or method
`my_undefined_variable’ for main:Object
and
for whatever reason Foo.first.app is now returning an
ActionDispatch::Integration::Session object – not only in the
console, but through the web, as well.
How can I correct this?