=, should be ==

I think it should be == instead of =? Since (salt = authenticatable_salt) always evaluates to true.
If the intention is to set salt to be authenticatable_salt and then return salt, I don' think this is a very clear way of expressing that.