【问题标题】:Rails last method returns #<Episode:0x007f5661f3a188>Rails 的最后一个方法返回 #<Episode:0x007f5661f3a188>
【发布时间】:2015-11-20 17:06:35
【问题描述】:

我想从我的数据库表中获取最后一条记录,但是当我从我的控制器索引方法中运行它时:

@a = Episode.last

它返回给我:

#<Episode:0x007f5661f3a188>

很久以前我在 Rails 中编写代码,所以我忘记了为什么会这样。谁能提醒我如何解决它?

但是当我打印时:

@a = Episode.all()

返回

#<Episode::ActiveRecord_Relation:0x007f567aa10590>

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    这里没有错。 Episode.last 应该返回一个 Episode 对象,它确实如此。您可以在对象上调用.inspect 以查看其中的数据。或者您可以按名称访问各个列。

    【讨论】:

    • 但它返回给我的是这样的:#&lt;Episode id: 1, tv_series: "\xD0\x9A\xD0\xB0\xD1\x81\xD0\xBB"
    • 只是俄文字母,英文字母没关系。在数据库中一切看起来都正确,但是当我选择并显示时,它看起来就像我在上面显示的那样
    • 好吧,您可以使用@a.tv_series 获取字符串并将其打印在您的网页上。如果数据库中的字符串没有与您在 Rails 应用程序的 HTML 输出中使用的编码兼容的编码,您可能需要处理字符编码问题。一个好的策略是在任何地方都使用 UTF-8。您可以使用String#encodingString#force_encodingString#bytes 调试编码问题。目前尚不清楚您遇到了什么问题。可能会问一个新问题,您可以在其中显示所有相关代码以及预期输出与实际输出。
    猜你喜欢
    • 1970-01-01
    • 2019-08-26
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多