[Rails5] Update Event#subclass_from_attributes method
What does this MR do?
In Rails 5.0 the ActiveRecord::Inheritance::subclass_from_attributes
method was updated.
Now it calls the find_sti_class method which is overriden in the Event
model and returns needed class (Event
vs PushEvent
).
This MR fixes the errors like
143) User#contributed_projects doesn't include IDs for unrelated projects
Failure/Error: action = attrs.with_indifferent_access[inheritance_column].to_i
NoMethodError:
undefined method `with_indifferent_access' for nil:NilClass
# ./app/models/event.rb:118:in `subclass_from_attributes'
which are raised on the RAILS5=1 rspec ...
command
Event.where(action: Event::PUSHED)
returns PushEvent
objects:
% RAILS5=1 rails console
Loading development environment (Rails 5.0.6)
[1] pry(main)> Event.where(action: Event::PUSHED)
Event Load (0.7ms) SELECT "events".* FROM "events" WHERE "events"."action" = $1 [["action", 5]]
=> [#<PushEvent:0x0000000006c07eb0 id: 10, project_id: 1, author_id: 1, target_id: nil, created_at: 2018-04-11 10:39:14 UTC, updated_at: 2018-04-11 10:39:14 UTC, action: 5, target_type: nil>]
% rails console
Loading development environment (Rails 4.2.10)
[1] pry(main)> Event.where(action: Event::PUSHED)
Event Load (0.6ms) SELECT "events".* FROM "events" WHERE "events"."action" = $1 [["action", 5]]
=> [#<PushEvent:0x000000000789fc40 id: 10, project_id: 1, author_id: 1, target_id: nil, created_at: 2018-04-11 10:39:14 UTC, updated_at: 2018-04-11 10:39:14 UTC, action: 5, target_type: nil>]
Why was this MR needed?
Migration to Rails 5.0.
Screenshots (if relevant)
No.
Does this MR meet the acceptance criteria?
- Review
-
Has been reviewed by Backend -
Has been reviewed by Database
-
-
Conform by the merge request performance guides -
Conform by the style guides -
Squashed related commits together
What are the relevant issue numbers?
Edited by Yorick Peterse