一個模型屬性的考慮下面的示例代碼名稱:如何知道的Rails
@user = User.last
user.first_name.attr_name #this should return "first_name"
有什麼樣Rails中的「attr_name」的方法?
在此先感謝
一個模型屬性的考慮下面的示例代碼名稱:如何知道的Rails
@user = User.last
user.first_name.attr_name #this should return "first_name"
有什麼樣Rails中的「attr_name」的方法?
在此先感謝
你可以這樣做(但也許問自己爲什麼):
user.attributes.key(user.first_name)
...將返回"first_name"
爲一個字符串。
要列出模型的屬性,您可以使用column_names
。
例如,User.column_names
回報是這樣的:
[ 「ID」, 「電子郵件」, 「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」, 「created_at」, 「的updated_at」, 「姓名」, 「confirmation_token」, 「confirmed_at」, 「confirmation_sent_at」, 「ACCOUNT_ID」, 「account_primary」]
然後你可以遍歷這個數組。例如,User.column_name[1]
將返回"email"
。
要查看每個屬性的更多詳細信息,請使用columns
。的User.columns
輸出應該是這樣的:
[#<的ActiveRecord :: ConnectionAdapters :: Mysql2Adapter ::柱:0x007fd6942b1840 @名稱= 「ID」,@ sql_type = 「INT(11)」,@空= false,@ limit = 4,@ precision = nil,@ scale = nil,@ type =:integer,@ default = nil,@ primary = true,@ coder = nil,@ collation = nil>,#< ActiveRecord :: ConnectionAdapters :: Mysql2Adapter ::柱:0x007fd694434348 @名字= 「電子郵件」,@ sql_type = 「VARCHAR(255)」,...
要列出從您可以MrTheWalrus的建議模型的實例屬性:User.first.attributes
會返回第一個用戶的attribu的散列以及他們的價值觀。
希望這是有幫助的。
更短的版本:''attributes.key(value)' – MrTheWalrus
WOW。我從來不知道這一點。謝謝! –
實際上'user.attributes.key(user.first_name)'對我來說確實有效,但'attributes.key(value)'不是。無論如何,在這種情況下, –