【发布时间】:2017-05-05 17:10:41
【问题描述】:
您好,我有一个锻炼应用程序,用户应该可以在其中喜欢某些产品。 我可以找到一种方法来展示他喜欢的产品,但我真的不知道如何创建 like 按钮。 我没有使用任何 gem,我不知道如何从头开始。
这是我的模型:
class User < ApplicationRecord
has_many :likes
has_many :liked_products, through: :likes, source: :product
end
class Product < ApplicationRecord
has_many :likes
end
class Like < ApplicationRecord
belongs_to :user
belongs_to :product
end
在我的视图产品中显示我想要喜欢按钮的位置:
<h1><%= @product.name %></h1>
<%= link_to "Like", product_likes_path(@product), method: :put, remote: true %>
我的路线:
Rails.application.routes.draw do
root to: 'visitors#index'
devise_for :users
resources :users
resources :products do
resource :likes
end
end
那是我的产品控制器,我认为这里必须有东西,但我不知道如何!
class ProductsController < ApplicationController
before_action :find_product, only: :show
def index
@products = Product.all
end
def show
#@product.like => gives an error 404
end
private
def find_product
@product = Product.find(params[:id])
end
end
我创建了一个点赞控制器,但它似乎没有用......所以......我放弃了......
class LikesController < ApplicationController
def new
@like = Like.new(like_params)
end
def create
@like = Like.new(like_params)
end
private
def like_params
params.require(:likes).permit(:user_id, :product_id)
end
end
我真的很想了解一下这个问题:)
【问题讨论】:
标签: ruby-on-rails ruby ajax ruby-on-rails-5