Should I Use Anchor, Button Or Form Submit For "Follow" Feature In Rails
- by James
I am developing an application in Rails 3 using a nosql database.  I am trying to add a "Follow" feature similar to twitter or github.  
In terms of markup, I have determined that there are three ways to do this.
1) Use a regular anchor. (Github Uses This Method)
<a href="/users/follow?target=Joe">Follow</a>
2) Use a button. (Twitter Uses This Method)
<button href="/friendships/create/">Follow</button>
3) Use a form with a submit button. (Has some advantages for me, but I haven't see anyone do it yet.)
<form method="post" id="connection_new" class="connection_new" action="/users/follow">
<input type="hidden" value="60d7b563355243796dd8496e17d36329" name="target" id="target">
<input type="submit" value="Follow" name="commit" id="connection_submit">
</form> 
Since I want to store the user_id in the database and not the username, options 1 and 2 will force me to do a database query to get the actual user_id, whereas option 3 will allow me to store the user_id in a hidden form field so that I don't have to do any database lookups.  I can just get the id from the params hash on form submission.  
I have successfully got each of these methods working, but I would like to know what is the best way to do this.  Which way is more semantic, secure, better for spiders, etc...?  Is there a reason both twitter and github don't use forms to do this?  
Any guidance would be appreciated.  I am leaning towards using the form method since then I don't have to query the db to get the id of the user, but I am worried that there must be a reason the big guys are just using anchors or buttons for this.  
I am a newb so go easy on me if I am totally missing something.  Thanks!