Monitor database table for external changes from within Rails application

Posted by jhwist on Stack Overflow See other posts from Stack Overflow or by jhwist
Published on 2010-04-01T12:23:11Z Indexed on 2010/04/02 19:53 UTC
Read the original article Hit count: 297

I'm integrating some non-rails-model tables in my Rails application. Everything works out very nicely, the way I set up the model is:

class Change < ActiveRecord::Base
  establish_connection(ActiveRecord::Base.configurations["otherdb_#{RAILS_ENV}"])
  set_table_name  "change"
end

This way I can use the Change model for all existing records with find etc.

Now I'd like to run some sort of notification, when a record is added to the table. Since the model never gets created via Change.new and Change.save using ActiveRecord::Observer is not an option.

Is there any way I can get some of my Rails code to be executed, whenever a new record is added? I looked at delayed_job but can't quite get my head around, how to set that up. I imagine it evolves around a cron-job, that selects all rows that where created since the job last ran and then calls the respective Rails code for each row.

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about observers