Best strategy to implement secure, one-time voting links

I am building an application where guests and registered users are
sent an email with a request to vote on a given issue.

  • registered user sends vote request email,
  • email containts voting links that have some type of enrypted link
    paramenter to uniquely identify the vote request to that recipient
  • recipient clicks on appropriate link to vote
  • the link is then invalid after the vote

I want to incorporate this with state_machine.

Is there a gem that helps enable this or is this something I should
build myself.

Devise and authlogic seem to do it but only for the user model - a
user could have many such vote requests outstanding at any time).

For those who have looked at Hobo, this is basically what they call a
“secure link” patter and it uses a key and key timestamp to enable the
process

Thanks!