Bad idea to add/remove associations in after_find

I have 2 distinct types of users (artists and curators) in my system and
they currently share all associations (eg has_one :portfolio).
However, a curator shouldn’t have a portfolio so I would like to only
add that association when required. Obviously I could just return nil
for that method, but it doesn’t feel right having that there in the
first place.

What’s the best way to get around this? I’ve looked at using eval in
after_find to call the has_one, but couldn’t get it working.

Any thoughts?

thanks!

On Mon, Dec 24, 2012 at 5:28 PM, Paul O. [email protected]
wrote:

Any thoughts?
Can an artist also be a curator?

On Dec 24, 11:28pm, Paul O. [email protected] wrote:

I have 2 distinct types of users (artists and curators) in my system and
they currently share all associations (eg has_one :portfolio).
However, a curator shouldn’t have a portfolio so I would like to only
add that association when required. Obviously I could just return nil
for that method, but it doesn’t feel right having that there in the
first place.

What’s the best way to get around this? I’ve looked at using eval in
after_find to call the has_one, but couldn’t get it working.

Have you considered STI ?

Fred

better use cancan also you can create type filed make
polymorphic ossification and create different users of different roles

+1 for STI, if an artist cannot be a curator.
Roles with CanCan, if an artist can be a curator.


Dheeraj K.