簡體   English   中英

如何在Rails中的ActiveRecord中獲取對象的所有值?

[英]How to get all values of an object in ActiveRecord in Rails?

可以使用column_names來獲取表的所有列,但是如果想知道 ActiveRecord 中特定實例的所有值怎么辦。

例如,

User.column_names
=> ["id", "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", "tel", "interests", "admin_status", "created_at", "updated_at", "city_id", "profile_image_file_name", "profile_image_content_type", "profile_image_file_size", "profile_image_updated_at"]

User.first
=> #<User id: 1, email: "aatir@jpl.com", tel: "+923223333333", interests: "Hi, I'm interested in coding.", admin_status: "download", created_at: "2016-08-16 22:38:05", updated_at: "2016-08-16 22:38:05", city_id: 2, profile_image_file_name: "Screen_Shot_2016-07-02_at_4.41.32_PM.png", profile_image_content_type: "image/png", profile_image_file_size: 324372, profile_image_updated_at: "2016-08-16 22:38:04">

first方法被調用時,它返回鍵值對。 我想要的是只有值,ActiveRecord 中是否有一個方法可以為我們做到這一點?

您也可以使用attributes方法來獲取它

User.first.attributes.values
  1. User.first.attributes將返回user對象的哈希表示

    User.first.attributes { "id" => 1, "email" => "aatir@jpl.com", "tel" => "+923223333333", "interests" => "Hi, I'm interested in coding.", "admin_status" => "download", "created_at" => "2016-08-16 22:38:05", "updated_at" => "2016-08-16 22:38:05", "city_id" => 2, "profile_image_file_name" => "Screen_Shot_2016-07-02_at_4.41.32_PM.png", "profile_image_content_type" => "image/png", "profile_image_file_size" => 324372, "profile_image_updated_at" => "2016-08-16 22:38:04" }
  2. values將返回Array的值

    User.first.attributes.values [1, "aatir@jpl.com", "+923223333333", "Hi, I'm interested in coding.", "download", "2016-08-16 22:38:05", "2016-08-16 22:38:05", 2, "Screen_Shot_2016-07-02_at_4.41.32_PM.png", "image/png", 324372, "2016-08-16 22:38:04"]

我正在擴展@deepak 的答案,以確保順序與column_names的順序保持相同,這就是我實現它的方式:

User.first.attributes.values_at *User.column_names

無論順序如何,只獲取值:

User.first.attributes.values 

只是您可以將 activerecord 轉換為 Hash 然后獲取如下值:

User.first.as_json.values
Object.first.attributes.values

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM