0

Hi this is somewhat it trivial but I can't for the life of me figure out where to make the adjustments. I have a LoanApplication model and a transfer model like this:

class LoanApplication < ActiveRecord::Base
  before_save :populate_guid
  belongs_to :user
  has_one :loan, -> { where loan: true }, as: :transferable
  has_one :repayment, -> { where repayment: true }, as: :transferable
  validates_uniqueness_of :guid  

  private 

  def populate_guid
    if new_record?
      while !valid? || self.guid.nil?
        self.guid = SecureRandom.random_number(1_000_000_000).to_s(36)
      end
    end
  end
end

and

class Transfer < ActiveRecord::Base
  belongs_to :transferable, polymorphic: true 
  belongs_to :user
 validates_presence_of :transferable_id,
                    :transferable_type,
                    :user_id,
                    :amount,
                    :password
end

How come LoanApplication.first.loan gives me the following error message

LoanApplication Load (1.1ms)  SELECT  "loan_applications".* FROM "loan_applications"  ORDER BY "loan_applications"."id" ASC LIMIT 1
NameError: uninitialized constant LoanApplication::Loan

All insights appreciated. Thanks

Ghost
  • 145
  • 1
  • 8

2 Answers2

0

I think Application is a reserved word. Try to rename LoanApplication?

0

It was trivial, I just needed to add class_name: "Transfer" for everything to work. -__-'

Ghost
  • 145
  • 1
  • 8