How to dynamically buid relationships between models?


#1

Hi all

I’m trapped with the following problem.

I’d like to work with the UserEngine engine. Every user has let’s say a
Profile model. So they have a 1:1 relationship.

Now I should declare this relationship in both models. But where do I
have to declare it exactly in the User model? I see they are working
somehow with modules in the engine’s lib dir, but how does this work
exactly? I’m quite confused… :-/

Thanks for explanation of this topic. :slight_smile:
Joshua


#2

For information about adding application-specific functionality to
models which are supplied by engines, please read the engines’ README
(in the engines plugin), and this:
http://rails-engines.org/wiki/pages/Why+Models+Don’t+Act+Like+Controllers

  • james

#3

#if forum /* May 21, 01:50 */

exactly? I’m quite confused… :-/

Thanks for explanation of this topic. :slight_smile:
Joshua
#endif /* removed_email_address@domain.invalid */

if i understand you correctly, you want to augment the User model with
some extra relationships? If thats the case, then something like the
following might help you:

I have a model called “Person”, that looks something like this:

app/models/person.rb:

class Person < User
has_many :settings, :class_name => “UserSetting” do
def default_users_acl_name
acl_name = find_by_property(“DefaultACL”).value
end
end
end

The “User” class comes from
vendor/plugins/login_engine/app/models/user.rb

Then, whenever i want to use my extra functionality to the User model i
just go via People instead:

p = Person.find_by_login(“admin”)
p.settings
[…]

p = Person.find(1)
etc, etc.

This way, i can let user/login engine do all its clever stuff, but i
dont have to make any changes to that code base

does that help?

-v

P.S. dont be offended by the quote, its randomly generated


keys: http://codex.net/gpg.asc

There are only two truly infinite things, the universe and stupidity.
And I am unsure about the universe.
– Albert Einstein