Skip to content

Comments

Merge PR 170 for Rails 5 Upgrade#2

Merged
nathanbertram merged 10 commits intoprocore:rails4-wioux-recovery-windowfrom
woopsn:rails4
Aug 16, 2017
Merged

Merge PR 170 for Rails 5 Upgrade#2
nathanbertram merged 10 commits intoprocore:rails4-wioux-recovery-windowfrom
woopsn:rails4

Conversation

@nathanbertram
Copy link

woopsn and others added 10 commits August 27, 2014 16:47
Restoring polymorphic has_one relationships errored because paranoia was
not correctly looking up the foreign_key.

Output from failing test -

ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: parent_model_id: SELECT  "polymorphic_models".* FROM "polymorphic_models" WHERE ("polymorphic_models"."deleted_at" IS NOT NULL) AND (parent_model_id)  ORDER BY "polymorphic_models"."id" ASC LIMIT 1

The test sets up a PolymorphicModel, which has_many parents. The
ParentModel then has a has_one relationship with PolymorphicModel. When
restoring, the foreign key is set as - `self.class.name.to_s.underscore_id`
which will be parent_model_id, instead of the :as option.
If association is a has_one relationship with an :as option, it will
have a type attribute (see https://github.com/rails/docrails/blob/master/activerecord/lib/active_record/reflection.rb).

If it is present, that will be the type column on the polymorphic model.
The foreign key can be found as an attribute on association.
Fix polymorphic has_one relationships
@nathanbertram nathanbertram merged commit e86ddb5 into procore:rails4-wioux-recovery-window Aug 16, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants