You might need to use before_create to check that the row doesn't already
exist (in a deactivated state).

On Fri, May 4, 2012 at 3:36 PM, Dmytrii Nagirniak <[email protected]> wrote:

> On 04/05/2012, at 3:20 PM, Ben Hoskings wrote:
> >
> > Ahh, right. I was responding to a slightly different question then :)
>
> Sorry, I should have said it at the very beginning :)
>
> > Yep I agree, the join table sounds like the right place for it. I'd just
> not use deletion; how about defining a Staffing#deactivate method/action?
>
> That totally makes sense.
>
> The only reason for all this dance is to preserve the existing interface
> where Company#users association was used as "active users" only.
> So that all the forms and other code that relies on it still works.
>
> I got the before_destroy to work (forgot to set the :dependent =>
> :destroy).
>
> But now there's another problem.
>
> 1) company.users << first; company.save!
> 2) company.users.clear; company.save!
>  ---> the record is "deactivated" as expected
> 3) company.users << first; company.save!
>  ---> additional record gets inserted, so there is one active and one
> inactive (violating constraint).
>
>
> > I'd say it's a bad idea to override destroy to do something else like
> deactivation -- it's surprising for a #destroy action to not actually
> remove the resource.
>
> Isn't Model#destroy supposed to be used the same way as Model#save ?
> It returns truthy/falsy indicating the result.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby or Rails Oceania" 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/rails-oceania?hl=en.
>
>


-- 
Craig Read

@Catharz
https://github.com/Catharz
http://stackoverflow.com/users/158893/catharz

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
or Rails Oceania" 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/rails-oceania?hl=en.

Reply via email to