2019-05-03 06:17:27 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2013-05-24 10:48:32 +08:00
|
|
|
class PostReply < ActiveRecord::Base
|
2020-05-14 04:08:15 +08:00
|
|
|
# TODO(2020-01-17): remove
|
2020-01-18 00:24:49 +08:00
|
|
|
self.ignored_columns = %w{
|
|
|
|
reply_id
|
|
|
|
}
|
|
|
|
|
2013-05-24 10:48:32 +08:00
|
|
|
belongs_to :post
|
2020-01-18 00:24:49 +08:00
|
|
|
belongs_to :reply, foreign_key: :reply_post_id, class_name: 'Post'
|
2013-05-24 10:48:32 +08:00
|
|
|
|
2020-01-18 00:24:49 +08:00
|
|
|
validates_uniqueness_of :reply_post_id, scope: :post_id
|
2016-07-13 23:34:21 +08:00
|
|
|
validate :ensure_same_topic
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def ensure_same_topic
|
|
|
|
if post.topic_id != reply.topic_id
|
|
|
|
self.errors.add(
|
|
|
|
:base,
|
|
|
|
I18n.t("activerecord.errors.models.post_reply.base.different_topic")
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
2013-05-24 10:48:32 +08:00
|
|
|
end
|
|
|
|
|
2013-05-24 10:35:14 +08:00
|
|
|
# == Schema Information
|
|
|
|
#
|
|
|
|
# Table name: post_replies
|
|
|
|
#
|
2020-01-18 00:24:49 +08:00
|
|
|
# post_id :integer
|
|
|
|
# created_at :datetime not null
|
|
|
|
# updated_at :datetime not null
|
|
|
|
# reply_post_id :integer
|
2013-05-24 10:35:14 +08:00
|
|
|
#
|
|
|
|
# Indexes
|
|
|
|
#
|
2020-01-18 00:24:49 +08:00
|
|
|
# index_post_replies_on_post_id_and_reply_post_id (post_id,reply_post_id) UNIQUE
|
|
|
|
# index_post_replies_on_reply_post_id (reply_post_id)
|
2013-05-24 10:35:14 +08:00
|
|
|
#
|