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

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

Which gives you the following URLS:


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