I was trying to implement possibility of Liking posts on my website but I have failed to do so. After clicking on "Like" the count of likes does not grow.
This is my button in view (partial).
<%= link_to "Like", like_post_path(post, like: true), method: 'post' %>
<%= pluralize( post.likes.size, "like") %>
And my models:
class Post < ActiveRecord::Base
belongs_to :user
has_many :likes, as: :likeable
...
end
User:
has_many :posts, dependent: :destroy
Like:
class Like < ActiveRecord::Base
belongs_to :user
belongs_to :likeable, polymorphic: true
end
Like action in posts controller:
def like
Like.create(user: current_user, like: params[:like])
flash[:success] = "Like Counted!"
redirect_to :back
end
routes:
resources :posts do
member do
post 'like'
end
end
And my migration: class CreateLikes < ActiveRecord:: Migration
def change
create_table :likes do |t|
t.boolean :like, :default => false
t.references :likeable, polymorphic: true
t.integer :user_id
t.timestamps null: false
end
end
end
I have used polymorphic because I am planning to add ability to Like comments as well.
I have found answer to my problem shortly after i added this post but decidec not to delete it so someone could get help. I simply added: post = Post.find(params[:id]) Like.create(likeable: post, user: current_user, like: params[:like])