/ / Porovnanie reťazcov Rails zlyhalo na hex reťazci - Ruby-on-Rails, Ruby, Ruby-on-Rails-3

Porovnanie reťazcov na rebrách zlyhá na šesťhrannú šnúru - rubínovo-na-koľajnicové, rubínové, rubínovo-na-koľajnicové-3

Momentálne budujem model pozvánky, ktorý pošlee-mailové pozvánky s odkazom. Odkazy sú „zabezpečené“ pomocou hash sha1. Ovládač však nedokáže overiť hash a neviem zistiť, prečo ...

Vygenerované odkazy vyzerajú

/projects/1/invitations/12?hash=c043b70c359a85e20cd9933c9cd37ef3f8943d7b

a kontrolór sa ich pokúsi overiť pomocou

def show
@invitation = Invitation.find(params[:id])
if @invitation.hash.to_s != params[:hash].to_s
redirect_to root_url
....

Porovnanie reťazcov zlyhá zakaždým. Trojnásobne som skontroloval, ale reťazce sa zdajú úplne identické.

ÚPRAVA: Niektoré informácie o ladení

logger.debug params
logger.debug @invitation.hash

vedie k nasledujúcemu výstupu v súbore development.log

{"hash"=>"c043b70c359a85e20cd9933c9cd37ef3f8943d7b", "action"=>"show",
controller"=>"invitations", "project_id"=>"1", "id"=>"12"}
c043b70c359a85e20cd9933c9cd37ef3f8943d7b

odpovede:

1 pre odpoveď č. 1

Pozri Ak @invitation.hash v skutočnosti nevolá Object#hash.