给定以下示例代码:
@user = User.last
user.first_name.attr_name #this should return "first_name"
Rails 中有类似“attr_name”方法的东西吗?
提前致谢
给定以下示例代码:
@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::Column:0x007fd6942b1840 @name="id", @sql_type="int(11)", @null=false, @limit=4, @precision=nil, @scale= nil, @type=:integer, @default=nil, @primary=true, @coder=nil, @collation=nil>, #< ActiveRecord::ConnectionAdapters::Mysql2Adapter::Column:0x007fd694434348 @name="email", @sql_type="varchar(255)",...
要列出模型实例的属性,您可以采用 MrTheWalrus 的建议:User.first.attributes
将返回第一个用户属性及其值的哈希值。
希望这会有所帮助。