Having problems with STI. Names below have been changed to protect the innocent. Imagine a system that allows someone to apply for one of two different types of school scholarships. Each scholarship goes through a different review process, represented by a state machine (this is not a state machine question). So there are two state machine classes that differ slightly and subclass a generic StateMachine:
class ScholarshipApplication belongs_to :state_machine end class StateMachine end class StateA < StateMachine has_one :application end class StateB < StateMachine has_one :application end The problem is I can get a ScholarshipApplication instance to tell me its StateMachine, but the StateMachine can't tell me it's ScholarshipApplication. E.g.: app = ScholarshipApplication.create state = StateA.create app.state_machine = state app.save app.state_machine # returns what it should sm = app.state_machine sm.scholarship_application # throws error: "Unknown column scholarship_applications.state_a_id..." So obviously I understand why this fails, since I don't have a state_a_id column in scholarship_applications. I just don't understand whether what I'm doing is achievable and if so, what magic configuration makes it all work. E.g. should my has_one statements be in the superclass? Should I reverse the has_one and belongs_to? Something else? Thanks! -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

