J'utilise l'héritage de table unique dans mon projet. Au lieu d'expliquer plus, je vais donner le code:Rails Héritage avec problème de relations
# person_profile.rb
class PersonProfile < ActiveRecord::Base
belongs_to :Person
end
# company_profile.rb
class CompanyProfile < ActiveRecord::Base
belongs_to :Company
end
# person.rb
class Person < User
has_one :PersonProfile
end
# company.rb
class Company < User
has_one :CompanyProfile
end
Cela me semble que cela devrait fonctionner correctement. Dans l'une de mes vues, j'essaie if @person.PersonProfile == nil
ce qui me semble parfaitement logique. Mais Rails n'aime pas:
Mysql::Error: Unknown column 'person_profiles.person_id' in 'where clause': SELECT * FROM `person_profiles` WHERE (`person_profiles`.person_id = 41) LIMIT 1
Rails est à la recherche de person_id dans la table person_profiles, mais il n'y a qu'un user_id dans ce tableau. Quelle est la meilleure façon de corriger ce bug?
c'est vrai, alors je suppose que je dirais '@person.person_profile == nil'. Mais cela ne règle toujours pas le problème. J'ai la même erreur mysql. – Sam