mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 23:03:38 +08:00
41 lines
816 B
Ruby
41 lines
816 B
Ruby
class Permalink < ActiveRecord::Base
|
|
belongs_to :topic
|
|
belongs_to :post
|
|
belongs_to :category
|
|
|
|
before_validation :normalize_url
|
|
|
|
def normalize_url
|
|
if self.url
|
|
self.url = self.url.strip
|
|
self.url = self.url[1..-1] if url[0,1] == '/'
|
|
end
|
|
end
|
|
|
|
def target_url
|
|
return external_url if external_url
|
|
return post.url if post
|
|
return topic.relative_url if topic
|
|
return category.url if category
|
|
nil
|
|
end
|
|
end
|
|
|
|
# == Schema Information
|
|
#
|
|
# Table name: permalinks
|
|
#
|
|
# id :integer not null, primary key
|
|
# url :string(1000) not null
|
|
# topic_id :integer
|
|
# post_id :integer
|
|
# category_id :integer
|
|
# created_at :datetime
|
|
# updated_at :datetime
|
|
# external_url :string(1000)
|
|
#
|
|
# Indexes
|
|
#
|
|
# index_permalinks_on_url (url) UNIQUE
|
|
#
|