diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2018-09-19 01:11:07 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2018-09-19 01:11:07 +0900 |
commit | afea273960e286712c86c272015a6a4767677992 (patch) | |
tree | 8e88ed8d5aa37faa68d3afd0469d8f862d12ba41 /activerecord/test/models | |
parent | e925cb4d856088a815bf4a0cf27518d01bb4029d (diff) | |
download | rails-afea273960e286712c86c272015a6a4767677992.tar.gz rails-afea273960e286712c86c272015a6a4767677992.tar.bz2 rails-afea273960e286712c86c272015a6a4767677992.zip |
Avoid the same `foreign_key` and `counter_cache` associations on `SillyReply`
`topic` and `reply` belongs_to associations on `SillyReply` are defined
with the same `foreign_key` (`parent_id`) and `counter_cache`
(`replies_count`) columns.
This would cause unintentional side-effect (e.g. saving `SillyReply`
object would cause double increment `replies_count`), so it is better to
avoid that side-effect.
Diffstat (limited to 'activerecord/test/models')
-rw-r--r-- | activerecord/test/models/reply.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/activerecord/test/models/reply.rb b/activerecord/test/models/reply.rb index 0ea110f4f8..0807bcf875 100644 --- a/activerecord/test/models/reply.rb +++ b/activerecord/test/models/reply.rb @@ -9,6 +9,10 @@ class Reply < Topic has_many :silly_unique_replies, dependent: :destroy, foreign_key: "parent_id" end +class SillyReply < Topic + belongs_to :reply, foreign_key: "parent_id", counter_cache: :replies_count +end + class UniqueReply < Reply belongs_to :topic, foreign_key: "parent_id", counter_cache: true validates_uniqueness_of :content, scope: "parent_id" @@ -54,10 +58,6 @@ class WrongReply < Reply end end -class SillyReply < Reply - belongs_to :reply, foreign_key: "parent_id", counter_cache: :replies_count -end - module Web class Reply < Web::Topic belongs_to :topic, foreign_key: "parent_id", counter_cache: true, class_name: "Web::Topic" |