Skip to content

Instantly share code, notes, and snippets.

@aldesantis
Created June 2, 2016 13:30
Show Gist options
  • Save aldesantis/8e923def19ff8f9291112d6eb23766e3 to your computer and use it in GitHub Desktop.
Save aldesantis/8e923def19ff8f9291112d6eb23766e3 to your computer and use it in GitHub Desktop.
class Review < ActiveRecord::Base
belongs_to :book
trigger.after(:insert) do
<<-SQL
UPDATE books SET reviews_count = reviews_count + 1 WHERE id = NEW.book_id;
SQL
end
trigger.after(:update).of(:book_id) do
<<-SQL
UPDATE books SET reviews_count = reviews_count - 1 WHERE id = OLD.book_id;
UPDATE books SET reviews_count = reviews_count + 1 WHERE id = NEW.book_id;
SQL
end
trigger.after(:delete) do
<<-SQL
UPDATE books SET reviews_count = reviews_count - 1 WHERE id = OLD.book_id;
SQL
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment