提前感谢您的帮助。Ruby on Rails noob在这里。
我正试着把我的头脑放在ActiveRecord上。具体来说,一旦有东西被保存到数据库中,我该如何从数据库中提取并操作它
我有一个User
表和一个Messages
表。用户has_many
消息、消息belongs_to
用户。
例如,在Rails控制台中,如果我创建一个User
并通过将其存储在变量@created_user
中
@created_user = User.create(from_number: "1234")
然后尝试运行CCD_ 7,我得到了正确的信息。(@created_user
的JUST密钥列表。)
但是,如果我通过从数据库中提取用户
@looked_up_user = User.where(from_number: "12345")
我让用户正确停车。(控制台向我显示SELECT语句,以及它提取的内容,它是正确的。)
然而,当我运行时:
@looked_up_user.attributes.keys
我得到undefined method 'attributes'
为什么只能在新创建的db元素上访问属性,而不能访问我分配给变量的任何属性?
如果我想查看@looked_up_user
变量中的所有键,我该怎么做?
很抱歉这里的基本问题,我只是无法理解文档:
http://guides.rubyonrails.org/active_record_querying.htmlhttp://guides.rubyonrails.org/active_record_basics.html
User.where
在控制台中指示时返回一个Relation
,而不是模型实例——它看起来像是一个包含对象的数组。
你可以做User.where(from_number: "12345").first.attributes.keys
或User.find_by_from_number("12345").attributes.keys