gpt4 book ai didi

mysql - Rails 在连接后从所有表中获取列名

转载 作者:行者123 更新时间:2023-11-29 11:43:33 25 4
gpt4 key购买 nike

我正在尝试从多个表中获取列名,这些表已执行联接以将它们组合起来。

我尝试执行以下操作:

User.joins(:user_account, :user_file, :user_education).column_names 

但这只是从用户返回列名称,就好像我刚刚完成了以下操作:

User.column_names 

有谁知道如何从联接中获取所有列名称?似乎并不经常需要这样做,因为网上似乎没有太多关于它的信息。我需要它来验证用户参数。

谢谢!

编辑:

用户表中的列名称:

["id", "status", "accepted_terms", "created_at", "updated_at", "email", "encrypted_password", "reset_password_token", "reset_password_sent_at", "remember_created_at", "sign_in_count", "current_sign_in_at", "last_sign_in_at", "current_sign_in_ip", "last_sign_in_ip", "confirmation_token", "confirmed_at", "confirmation_sent_at", "unconfirmed_email", "provider", "uid"]

User_account 表中的列名称:

 ["first_name", "last_name", "phone_number", "address"]

我希望能够获取列名称的完整列表,即

["id", "status", "accepted_terms", "created_at", "updated_at", "email", "encrypted_password", "reset_password_token", "reset_password_sent_at", "remember_created_at", "sign_in_count", "current_sign_in_at", "last_sign_in_at", "current_sign_in_ip", "last_sign_in_ip", "confirmation_token", "confirmed_at", "confirmation_sent_at", "unconfirmed_email", "provider", "uid", "first_name", "last_name", "phone_number", "address"]

我需要什么方法才能准确获取该列表?我已经尝试过

User.joins(:user_account).column_names

但这只是给了我第一组列名,即用户表中的列名(而不是用户帐户表中的列名)。

最佳答案

您可以简单地执行以下操作:

User.column_names + UserAccount.column_names

等等。 Rails 从 ActiveRecord 类而不是 SQL 关系中检索列名。

UPD。或者更惯用的

[User, UserAccount, UserFile, UserEducation].flat_map(&:column_names).uniq

关于mysql - Rails 在连接后从所有表中获取列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35353787/

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