diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-05-12 14:53:31 -0400 | 
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-05-12 14:53:31 -0400 | 
| commit | b7c5853de5f0f04625eab6389cba9de8b02e48fb (patch) | |
| tree | 1764a974e1b93b024c90f98246590d0bac5430ef /app/models | |
| parent | 4016070f2caf30f576d0b0df8a65a7b4b468e951 (diff) | |
| download | thoughts-b7c5853de5f0f04625eab6389cba9de8b02e48fb.tar.gz thoughts-b7c5853de5f0f04625eab6389cba9de8b02e48fb.tar.bz2 thoughts-b7c5853de5f0f04625eab6389cba9de8b02e48fb.zip | |
Added streams index
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/stream.rb | 11 | ||||
| -rw-r--r-- | app/models/update.rb | 8 | 
2 files changed, 19 insertions, 0 deletions
| diff --git a/app/models/stream.rb b/app/models/stream.rb index 0773143..6a738e2 100644 --- a/app/models/stream.rb +++ b/app/models/stream.rb | |||
| @@ -8,11 +8,22 @@ class Stream < ApplicationRecord | |||
| 8 | validates :title, presence: true | 8 | validates :title, presence: true | 
| 9 | validates :slug, presence: true, format: /\A[-a-z0-9]+\z/ | 9 | validates :slug, presence: true, format: /\A[-a-z0-9]+\z/ | 
| 10 | 10 | ||
| 11 | before_create :set_post_timestamp | ||
| 12 | |||
| 11 | def path | 13 | def path | 
| 12 | "/thinks/#{slug}" | 14 | "/thinks/#{slug}" | 
| 13 | end | 15 | end | 
| 14 | 16 | ||
| 17 | def to_param | ||
| 18 | slug | ||
| 19 | end | ||
| 20 | |||
| 15 | def taggable | 21 | def taggable | 
| 16 | self | 22 | self | 
| 17 | end | 23 | end | 
| 24 | |||
| 25 | private | ||
| 26 | def set_post_timestamp | ||
| 27 | self.latest_post_at = self.created_at | ||
| 28 | end | ||
| 18 | end | 29 | end | 
| diff --git a/app/models/update.rb b/app/models/update.rb index 01907d8..a98a5d4 100644 --- a/app/models/update.rb +++ b/app/models/update.rb | |||
| @@ -5,6 +5,8 @@ class Update < ApplicationRecord | |||
| 5 | 5 | ||
| 6 | validates :stream, :body, presence: true | 6 | validates :stream, :body, presence: true | 
| 7 | 7 | ||
| 8 | after_create :set_latest_timestamp | ||
| 9 | |||
| 8 | def path | 10 | def path | 
| 9 | "/thinks/#{stream.slug}\#update-#{id}" | 11 | "/thinks/#{stream.slug}\#update-#{id}" | 
| 10 | end | 12 | end | 
| @@ -12,4 +14,10 @@ class Update < ApplicationRecord | |||
| 12 | def taggable | 14 | def taggable | 
| 13 | stream | 15 | stream | 
| 14 | end | 16 | end | 
| 17 | |||
| 18 | private | ||
| 19 | def set_latest_timestamp | ||
| 20 | self.stream.latest_post_at = self.created_at | ||
| 21 | self.stream.save! | ||
| 22 | end | ||
| 15 | end | 23 | end | 
