How to create a "like" button

Ive got a like and video model.

On a Video page, Users can click a link ("like") button which will allow them to like a particular video.

Since my like button/image comes in the form of a link and not an actual html form. How should this be implemented? Do I need to specify a ":method => puts" in my link_to tag helper?

What are your thoughts?

AJAX - set the onClick property to point to a function that sends the request to the server.

Ajax is how I am definitely going to implement this with.

However, I need to how to do this without js first.

Is it possible for a link to point to the 'create' method of a controller, passing the necessary values/attributes ?

Or is the only way to do such a thing, through an html form (via post)?

Assuming you have the following models: User, Video, Like. If a Like instance belongs to a video and a user. You could use nested routes in the following format:

resources :video do   resource :like end

Which gives you the following URLS:

/videos/1/like /videos/1/like/1

So then using the proper path and action, you can easily create a link to "like" a video.

link_to("Like!", video_like_path(video), :action => :post)

Then in your Like controller (create method), you simply have to create and save Like instance.

That should be enough to get you going in the right direction.

Thanks for that Tim