# Terminal rails g scaffold put up consumer:belongs_to title content material rails g mannequin users_post consumer:belongs_to put up:belongs_to rails g controller Posts::Likes rails routes | grep likes
# fashions/put up.rb class Publish < ApplicationRecord belongs_to :consumer has_many :users_posts has_many :liked_by_users, via: :users_posts, supply: :consumer # Publish.first.liked_by_users.measurement finish
# fashions/users_post.rb class UsersPost < ApplicationRecord belongs_to :consumer belongs_to :put up finish
# fashions/consumer.rb class Person < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :users_posts has_many :liked_posts, via: :users_posts, supply: :put up has_many :posts finish
# controllers/posts/likes_controller.rb class Posts::LikesController < ApplicationController def create put up = Publish.discover(params[:post_id]) current_user.users_posts.create(put up: put up) redirect_to put up, discover: "Publish appreciated" finish def destroy # put up = Publish.discover(params[:post_id]) # current_user.users_posts.find_by(put up: put up).destroy! # redirect_to put up, discover: "Publish unliked" # users_post = UsersPost.discover(params[:id]) # users_post.destroy # redirect_to post_path(users_post.post_id), discover: "Publish unliked" # users_post = GlobalID::Locator.find(params[:id]) users_post = GlobalID::Locator.locate_signed(params[:id]) users_post.destroy redirect_to post_path(users_post.post_id), discover: "Publish unliked" finish finish
# config/routes.rb Rails.utility.routes.draw do sources :posts do scope module: :posts do sources :likes, solely: [:create, :destroy] finish finish devise_for :customers root to: 'welcome#index' finish
# controllers/posts_controller.rb def present @liked_post = UsersPost.find_by(consumer: current_user, put up: @put up) finish
# views/posts/present.html.erb <%# if current_user.liked_post?(@put up.id) %> <% if @liked_post %> <%# link_to "in contrast to", post_like_path(@put up, id: @liked_post.to_global_id), technique: :delete %> <%= link_to "in contrast to", post_like_path(@put up, id: @liked_post.to_sgid(expires_in: 1.hour)), technique: :delete %> <% else %> <%= link_to "like", post_likes_path(@put up), technique: :put up %> <% finish %>