gpt4 book ai didi

sql - ROR 内连接给出重复值

转载 作者:行者123 更新时间:2023-12-02 03:36:34 27 4
gpt4 key购买 nike

你好,我通过内部连接获取了重复的数据行。我编写了带有 OR 条件的内部连接。

Controller userscontroller.rb

@users = User.search(params[:search])
@users = User.joins([:requests]).where("name LIKE ? OR destination LIKE ?","#{params[:search]}%", "#{params[:search]}%")

查看 searches/index.html.haml

%aside.span6
= form_tag(:users, method: "get") do
= text_field_tag "search", params[:search], placeholder: "Enter Name"
%br/
= submit_tag "Search", name: nil, class: "btn-custom-darken"
%br/
%br/
- @users.each do |user|
= render user
= will_paginate @users

查看 users/index.html.haml

%div{align: "center"}
%b List of Users
- if current_user != (@user)
%ol.microposts
- @users.each do |user|
= render user

问题是搜索后打印为输出的重复数据。如果用户发布了 3 个请求,那么用户将作为输出打印 3 次。因此,用户的图像使用重复的请求数据打印了 3 次。提前致谢。

最佳答案

要从联接中获取唯一值,只需将 .uniq 函数添加到调用中即可。此外,当为多个查询重复使用一个输入时,您可以使用 ruby​​ 键:值对语法。

@users = User.joins([:requests])
.where("name LIKE :search OR
destination LIKE :search",
{search: params[:search]})
.uniq

关于sql - ROR 内连接给出重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23128875/

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