Ruby on rails Rails:为什么user.attributes.keys只适用于新创建的用户,而不是我找到的(find_by)或拉取的用户。在哪里?
提前感谢你的帮助。Ruby-on-Rails就是这里的noob 我正试图用ActiveRecord来掩饰我的想法。具体地说,一旦某些内容保存到数据库中,我该如何从数据库中提取并操作它 我有一个Ruby on rails Rails:为什么user.attributes.keys只适用于新创建的用户,而不是我找到的(find_by)或拉取的用户。在哪里?,ruby-on-rails,ruby-on-rails-4,activerecord,rails-activerecord,Ruby On Rails,Ruby On Rails 4,Activerecord,Rails Activerecord,提前感谢你的帮助。Ruby-on-Rails就是这里的noob 我正试图用ActiveRecord来掩饰我的想法。具体地说,一旦某些内容保存到数据库中,我该如何从数据库中提取并操作它 我有一个用户表和一个消息表。用户有许多消息,消息属于用户 例如,在Rails控制台中,如果我创建一个用户,并通过以下方式将其存储在变量@created\u User中: @created_user = User.create(from_number: "1234") 然后尝试运行@created\u user.
用户
表和一个消息
表。用户有许多
消息,消息属于
用户
例如,在Rails控制台中,如果我创建一个用户
,并通过以下方式将其存储在变量@created\u User
中:
@created_user = User.create(from_number: "1234")
然后尝试运行@created\u user.attributes.keys
以获得正确的信息。(仅为@created\u user
创建的密钥列表)
但是,如果我通过以下方式从数据库中提取用户:
@looked_up_user = User.where(from_number: "12345")
我让用户正确地拉起来。(控制台向我显示SELECT语句,以及它提取的内容,这是正确的。)
但是,当我跑步时:
@looked_up_user.attributes.keys
我得到未定义的方法“属性”
为什么属性只能在新创建的db元素上访问,而不是我分配给变量的任何东西
如果我想查看@looked\u up\u user
变量中的所有键,我该怎么做
很抱歉,这里有一个基本问题,我只是无法理解文档:
用户。其中
在控制台中指示时返回一个关系,而不是模型实例-它看起来像一个包含对象的数组
您可以执行User.where(从_编号:“12345”).first.attributes.keys
或者User。从_number(“12345”).属性.键中按_查找_。其中
返回一个关系
,而不是模型实例,在控制台中进行指示时-它看起来像一个包含对象的数组
您可以执行User.where(从_编号:“12345”).first.attributes.keys
或用户。从\u编号(“12345”)。属性。键中查找\u。谢谢!当我调用db时,有没有一种方法可以让我调出模型实例?答案中没有User.where是User.where是User。我可以做些什么来提取模型实例?@PhilipCortes的例子在回答中,关键在于使用的查询,其中
可以获取多个(或无)对象,因此将返回值看作是一种array@PhilipCortes不客气。如果这帮助了你——考虑“接受”答案,我意识到我必须这么做。对不起!执行此查询并获取单个实例的另一种方法是使用find_by()方法。当您传入多个属性时,这些方法往往比动态方法更干净一些。。。用户。查找方式(发件人:12345,是否活动:true)谢谢!当我调用db时,有没有一种方法可以让我调出模型实例?答案中没有User.where是User.where是User。我可以做些什么来提取模型实例?@PhilipCortes的例子在回答中,关键在于使用的查询,其中
可以获取多个(或无)对象,因此将返回值看作是一种array@PhilipCortes不客气。如果这帮助了你——考虑“接受”答案,我意识到我必须这么做。对不起!执行此查询并获取单个实例的另一种方法是使用find_by()方法。当您传入多个属性时,这些方法往往比动态方法更干净一些。。。User.find_by(from_number:12345,is_active:true)