5步实现网站点赞功能

Step 1.安装 gem



Gemfile

+ gem 'acts_as_votable', '~> 0.10.0'

执行bundle install

执行rails g acts_as_votable:migration

然后rake db:migrate

Step 2.以购物网站为例:修改 product.rb



app/models/product.rb 

+ acts_as_votable

Step 3.修改 routes.rb



config/routes.rb

  resources :products do
    member do
      post :add_to_cart
      put "like", to: "products#upvote"
    end
  end

Step 4.修改 app/controller/products_controller.rb



app/controllers/products_controller.rb

  before_action :authenticate_user!, only: [:upvote, :downvote]
  ...

  def upvote
    @product = Product.find(params[:id])
    @product.upvote_by current_user
    redirect_to :back
  end

  def downvote
    @product=Product.find(params[:id])
    @product.downvote_by current_user
    redirect_to :back
  end

  ...

Step 5.修改html.erb 文件



#在需要添加点赞功能的页面加入如下内容:
<%= link_to like_product_path(product), method: :put do %>
    <div class="pi-thumbs-up">
        赞(<%= product.get_upvotes.size %>)
    </div>
<% end %>


#在需要添加差评功能的页面加入如下内容:
<%= link_to dislike_product_path(product), method: :put do %>
<div class="pi-thumbs-down">
    踩(<%=product.get_downvotes.size%>)
</div>
#注意:路径的参数是选择@product 还是 product 要根据具体的页面来确定。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容