gpt4 book ai didi

sql - 按关联字段排序的 Rails

转载 作者:行者123 更新时间:2023-11-29 11:06:15 27 4
gpt4 key购买 nike

我有以下型号

class User
attr_accesible :first_name, :phone_number
has_one :user_extension
end

class UserExtension
attr_accessible :company, :user_id
belongs_to :user
end

我有一个包含所有用户的表。我需要按名字、电话号码、公司对这张表进行排序。使用 first_name,phone_number 我没有任何问题,订单工作正常,例如

@users = User.order("first_name desc")

,但是我也需要按公司排序,不知道怎么做。

我可以通过这种方式获取公司名称

@user.user_extension.company

所以我在使用 sql 时遇到了麻烦,它会给我公司订购的所有用户。数据库:PostgreSQL。谢谢。

编辑:

我应该提供有关此模型的更多信息。

create_table "user_extensions", :force => true do |t|
t.integer "user_id"
t.string "company"
end

create_table "users", :force => true do |t|
t.string "first_name"
t.string "phone_number"
end

此外,我尝试使用 join

User.joins(:user_extension).order("user_extension.company desc")

我得到了什么

 User Load (1.6ms)  SELECT "users".* FROM "users" INNER JOIN "user_extensions" ON "user_extensions"."user_id" = "users"."id" ORDER BY user_extension.company desc
PG::Error: ERROR: relation "user_extensions" does not exist

User.includes(:user_extension).order("user_extension.company desc")

我也明白了

PG::Error: ERROR:  relation "user_extensions" does not exist

已解决我的 bd 有问题,所有连接都可以正常工作。

最佳答案

试试这个:

@users = User.includes(:user_extension).order("user_extensions.company desc")

我认为您需要 order:user_extensions,而不是 user_extension

关于sql - 按关联字段排序的 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19616611/

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