Ah yeah, 'method', sorry ;)

Ok, so the reason I had this approach is that a test was failing when I was trying to remove the attr_accessible declaration in the profile model.
The test was calling the receive method on a new - unsaved - profile which had no person attached. Trying to set the person_id foreign key to NULL was making the sql query fail.
I kind of assumed this was the way the method was supposed to be called, so I blacklisted the person_id attribute along with the created_at and updated_at attributes which the test was also setting to nil.