Associations are not found with STI using Rails 2.3

I have recently upgraded my Rails app to 2.3. I am using STI where I
have class called BaseProfile that is extended by IndividualProfile. I
have some assocations that are defined in BaseProfile but I have been
getting errors when views reference those relationships, e.g.

undefined method `primary_user?’ for #IndividualProfile:0x7fcb3ecea278
RAILS_ROOT: /home2/plexobje/rails/linktank

Application Trace | Framework Trace | Full Trace
/home/plexobje/.gems/gems/activerecord-2.3.4/lib/active_record/attribute_methods.rb:255:in
method_missing' /home2/plexobje/rails/linktank/app/models/individual_profile.rb:32:inlatest_event’
/home/plexobje/.gems/gems/activerecord-2.3.4/lib/active_record/associations/association_proxy.rb:221:in
send' /home/plexobje/.gems/gems/activerecord-2.3.4/lib/active_record/associations/association_proxy.rb:221:inmethod_missing’
/home2/plexobje/rails/linktank/app/controllers/application_controller.rb:99:in
get_upcoming_rsvp' /home/plexobje/.gems/gems/activesupport-2.3.4/lib/active_support/callbacks.rb:178:insend’
/home/plexobje/.gems/gems/activesupport-2.3.4/lib/active_support/callbacks.rb:178:in
evaluate_method' /home/plexobje/.gems/gems/activesupport-2.3.4/lib/active_support/callbacks.rb:166:incall’
/home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/filters.rb:225:in
call' /home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/filters.rb:629:inrun_before_filters’
/home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/filters.rb:615:in
call_filters' /home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/filters.rb:610:inperform_action_without_benchmark’
/home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/benchmarking.rb:68:in
perform_action_without_rescue' /home/plexobje/.gems/gems/activesupport-2.3.4/lib/active_support/core_ext/benchmark.rb:17:inms’
/home/plexobje/.gems/gems/activesupport-2.3.4/lib/active_support/core_ext/benchmark.rb:10:in
realtime' /home/plexobje/.gems/gems/activesupport-2.3.4/lib/active_support/core_ext/benchmark.rb:17:inms’
/home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/benchmarking.rb:68:in
perform_action_without_rescue' /home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/rescue.rb:160:inperform_action_without_flash’
/home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/flash.rb:146:in
perform_action' /home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/base.rb:532:insend’
/home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/base.rb:532:in
process_without_filters' /home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/filters.rb:606:inprocess’
/home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/base.rb:391:in
process' /home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/base.rb:386:incall’
/home/plexobje/.gems/gems/actionpack-2.3.4/lib/action_controller/routing/route_set.rb:437:in
`call’

The primary_user? is defined in parent class. This code used to work
with older version of Rails. Is there a fix for this?
Thanks.

On Oct 18, 3:03 pm, Shahzad B. [email protected]
wrote:

I have recently upgraded my Rails app to 2.3. I am using STI where I
have class called BaseProfile that is extended by IndividualProfile. I
have some assocations that are defined in BaseProfile but I have been
getting errors when views reference those relationships, e.g.

undefined method `primary_user?’ for #IndividualProfile:0x7fcb3ecea278
RAILS_ROOT: /home2/plexobje/rails/linktank
[snip]
The primary_user? is defined in parent class. This code used to work
with older version of Rails. Is there a fix for this?
Thanks.

You weren’t kidding about the “older version” part, were you? :slight_smile: That
method was deprecated back in 0.9.5(!!) (January 2005) and went away
several versions later. Even the deprecation warning is gone now.

The now-long-gone deprecation message recommended that you use ==
instead; you’ll need to check if you were passing the second argument
(force_reload) or not.

–Matt J.

Matt J. wrote:

On Oct 18, 3:03�pm, Shahzad B. [email protected]
wrote:

I have recently upgraded my Rails app to 2.3. I am using STI where I
have class called BaseProfile that is extended by IndividualProfile. I
have some assocations that are defined in BaseProfile but I have been
getting errors when views reference those relationships, e.g.

undefined method `primary_user?’ for #IndividualProfile:0x7fcb3ecea278
RAILS_ROOT: /home2/plexobje/rails/linktank
[snip]
The primary_user? is defined in parent class. This code used to work
with older version of Rails. Is there a fix for this?
Thanks.

You weren’t kidding about the “older version” part, were you? :slight_smile: That
method was deprecated back in 0.9.5(!!) (January 2005) and went away
several versions later. Even the deprecation warning is gone now.

The now-long-gone deprecation message recommended that you use ==
instead; you’ll need to check if you were passing the second argument
(force_reload) or not.

–Matt J.

As I said, primary_user? was defined in my class and I wasn’t using
deprecated method. However, it looks like Rails filters that method so I
renamed it and it works now.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs