【问题标题】:Activerecord returning all results as a hashActiverecord 将所有结果作为散列返回
【发布时间】:2014-03-30 09:16:17
【问题描述】:

我有以下连接到名为 dbblah 和 table1 的数据库(名称已更改)

require 'active_record'

ActiveRecord::Base.establish_connection(
        :adapter => "mysql",
    :host => "192.168.1.10",
    :database => "automation",
    :username => "root",
    :password => "password"
)

ActiveRecord::Base.pluralize_table_names = false

class Table1 < ActiveRecord::Base
end

db = Table1.find_by(db: 'dbname')
puts db

但是当我运行它时,我得到的结果是一个看起来像这样的哈希:

[root@localhost server]# ruby blah.rb
#<Table1:0x000000019796a8>

【问题讨论】:

    标签: ruby activerecord


    【解决方案1】:

    这只是在新对象上调用的to_s 方法的输出 - 它绝对不是哈希。默认情况下,当使用非字符串调用 puts 方法时,会在该对象上调用 to_s 方法以显示字符串。对于 ActiveRecord 模型,to_s 方法的结果正是您所得到的。

    尝试调用p db 以显示对该对象调用的方法inspect 的结果,这将使您更深入地了解其内部结构。

    【讨论】:

    • 我是个十足的红宝石菜鸟,昨天才开始玩。我在某处看到了一个带有“放置”的示例,我只是假设那是红宝石“打印”。当我这样做时: p db 它就像我期望的那样工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 2019-01-14
    相关资源
    最近更新 更多