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.