gpt4 book ai didi

ruby-on-rails - 根据用户完成的喜欢对 Rails 中的项目列表进行排序

转载 作者:搜寻专家 更新时间:2023-10-30 23:36:49 26 4
gpt4 key购买 nike

我是 ruby​​ on rails 的新手,所以请原谅这个问题。我试着按照这个例子 Rails sort tags by most used (tag.posts.count)但一直收到错误消息“项目:模块的未定义方法‘顺序’”。我正在尝试根据项目的喜好对项目列表进行排序。因此,一个有 5 个赞的项目应该放在一个只有 3 个赞的项目之上。我在下面列出了所有相关代码。非常感谢你们!!

点赞.rb

class Like < ApplicationRecord
belongs_to :item, :counter_cache => true
belongs_to :user
end

Likes_controller.rb

class Items::LikesController < ApplicationController
before_action :authenticate_user!
before_action :set_book

def create
@item.likes.where(user_id: current_user.id).first_or_create
respond_to do |format|
format.html {redirect_to @item}
format.js
end
end
def destroy
@item.likes.where(user_id: current_user.id).destroy_all

respond_to do |format|
format.html {redirect_to @item}
format.js
end
end
private
def set_book
@item = Item.find(params[:item_id])
end
end

Item.rb

class Item < ApplicationRecord
has_many :likes, :counter_cache => true

users_controller.rb

class UsersController < ApplicationController
before_action :authenticate_user!
before_action :set_user, only: [:show, :edit, :update, :destroy]

def index
@items = Item.all
Items.order('likes_count')
end

def show
@items = Item.find(params[:id])
end


private

def set_user
@item = Item.find(params[:id])
end
end

index.html.erb

   <% @items.each do |item| %>
<%= item.product %>
<div><%= image_tag(item.avatar.url(:thumb)) %></div>
<% end %>

迁移相关

class AddLikecountsToItem < ActiveRecord::Migration[5.0]
def change
add_column :items, :likes_count, :integer, :null => false, :default => 0
end
end

class CreateLikes < ActiveRecord::Migration[5.0]
def change
create_table :likes do |t|
t.integer :user_id
t.integer :item_id

t.timestamps
end

结束结束

最佳答案

在 users_controller.rb 中

def index
@items = Item.order('likes_count')
end

关于ruby-on-rails - 根据用户完成的喜欢对 Rails 中的项目列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41080876/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com