trying to add model inheritance without changing database calls

8 views
Skip to first unread message

Rynn Steinbolt

unread,
Jun 11, 2016, 10:08:52 AM6/11/16
to rubyonra...@googlegroups.com
Hello Folks!

Im trying to have several model classes inherit from a new class, which
in turn inherits from ActiveRecord::Base. The problem is that my
controller's database calls to the original model classes now look for
the information in the new class's database table, even though it doesnt
exist there.

e.g.
class RawDatum inherits from class ArchModel
RawDataController calls RawDatum.all
generates SQL: "SELECT "arch_models".* FROM "arch_models" ORDER BY
raw_data.timestamp DESC"
correct SQL: "SELECT "raw_data".* FROM "raw_data" ORDER BY
raw_data.timestamp DESC"

The new class is for providing methods that process data from other
models, and to make the corresponding method calls short and simple. It
doesn't need its own database table at all. The desired functionality
already worked before, but the implementation was badly structured.

Does anyone have an idea on how to make this work?

--
Posted via http://www.ruby-forum.com/.

Greg Navis

unread,
Jun 13, 2016, 8:11:35 AM6/13/16
to rubyonra...@googlegroups.com
You might try to set `self.table_name = 'raw_data'` in the RawDatum class though I'm not sure what it's side-effects would be (if any).

Would the following design work for you?

model ArchModel
  # Include common functionality here.
end

class RawDatum < ActiveRecord::Base
  include ArchModel
end
--
Greg Navis
I help tech companies to scale Heroku-hosted Rails apps.

Reply all
Reply to author
Forward
0 new messages