splitted class into separate table activerecord

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 ?

The 13/09/11, Vogon Primo wrote:

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 ?

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.

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