splitted class into separate table activerecord

6 views
Skip to first unread message

Vogon Primo

unread,
Sep 13, 2011, 1:02:08 PM9/13/11
to rubyonra...@googlegroups.com
Suppose that in legacy schema,that you are working on getting
ActiveRecord to work with, you aren't keeping all the information about
user, with the user's main information in the users table, but in a
separate table.

For example:

<<table users>>
user_id
firstname
lastname

<<table auth_info>>
user_id <<PK>><<FK>>
username,
password

In my domain I wish to have User model with username,password properties
without create class model related to auth_info table and relative
association. Is there a way to do this with ActiveRecord ?

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

Nicolas Sebrecht

unread,
Sep 19, 2011, 10:24:45 AM9/19/11
to rubyonra...@googlegroups.com, Nicolas Sebrecht

I would redefine the method_missing feature (Ruby) in the model User.
Something like

class User
def method_missing(sym, *args, &block)
if (user_auth_info and user_auth_info.respond_to? name) then
return auth_info.send(sym, *args, &block)
else
super
end
end
end

This is NOT TESTED.

--
Nicolas Sebrecht

Tim Shaffer

unread,
Sep 19, 2011, 10:33:05 AM9/19/11
to rubyonra...@googlegroups.com, Nicolas Sebrecht
You can also use the Rails delegate feature. I know you said you didn't want to create the the AuthInfo model but I'm not sure there's any harm to it?

class User
  has_one :auth_info
  delegate :username, :username=, :password, :password=, :to => :auth_info
end

class AuthInfo
  belongs_to :user
end
Reply all
Reply to author
Forward
0 new messages