31 lines
878 B
Ruby
31 lines
878 B
Ruby
# models/post.rb
|
|
class Post < ActiveRecord::Base
|
|
belongs_to :user
|
|
belongs_to :subcreddit
|
|
|
|
has_many :comments
|
|
|
|
delegate :username, to: :user, prefix: true
|
|
delegate :slug, to: :subcreddit, prefix: true
|
|
|
|
validates :title,
|
|
presence: true,
|
|
length: { maximum: 300 }
|
|
|
|
validates :content,
|
|
length: { maximum: 15000 }
|
|
|
|
def to_param
|
|
# This "just works" because of the way Rails IDs work. .to_i must be run on
|
|
# any incoming ID. "1-title-parameterized" will automatically be converted
|
|
# to 1 and "2-title-paramerterized-with-number-2" will automatically be
|
|
# converted to 2. This gives us desired functionality without adding code
|
|
# to properly handle retrieving based on slug. Hopefully, this does not
|
|
# cause issues later on.
|
|
"#{self.id}-#{self.title.parameterize}"
|
|
end
|
|
|
|
def comments?
|
|
self.comments_count != 0
|
|
end
|
|
end
|