Rails models for Users, Offers, Comments, Documents, and Reviews
First thing is if they are different treat them different. You can share code with help of interaction or service of some other way may be with active active_interaction. But if you really want to have less table then you may define one single model say Content and this will have a column content_type: integer with default value as 0 and all your other columns then convert the content_type to enum something like below

class Content &lt; ApplicationRecord
  enum content_type: { comment: 0, rating: 1 }
end


this will help you to differentiate between comment and rating. With proper indexing it will make no issue.