Peter Bell <peter@...> writes:

> 
> A User has many teachers. I'm trying to lock down my API. I have 
a "user.add_teacher teacher" method and want
> to make that the *only* way to "user.teachers << teacher". Any way to lock 
down the teachers association so
> it is read only from outside the user class and only settable within self?
> 
> I'm not just looking for attr_protected to avoid mass assignment. I'm 
specifically looking to ensure that
> nobody on the team will write "user.teachers << teacher" and bypass all of 
the additional business logic
> in the add_teacher method. I know I can do a "find within project" 
for "teachers <<" but don't want to
> remember to have to do that.
> 
> I know my specs should catch anything that's amiss, and I'm not sure whether 
this is an idiomatic approach in
> Ruby/Rails but I'd appreciate any thoughts/suggestions.
> 
> Thanks,
> Peter
> 


It seems there is business logic to check when adding teachers to users which 
goes beyond a simple "validates_associated :teacher".  Rather than restrict 
developers to a single method call, I would investigate custom validations.

See http://guides.rubyonrails.org/active_record_validations_callbacks.html

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to