【问题标题】:How to access a nested hash value when performing a sql query in Rails?在 Rails 中执行 sql 查询时如何访问嵌套的哈希值?
【发布时间】:2020-04-16 07:47:32
【问题描述】:

带有嵌套哈希的列看起来像这样,我想从 subscription 列访问 language

=> #<User:0x00007fc609916ac8
 id: "224cc26e-6a66-43a0-96db7d3775ac",
 name: "Jack Ryan",
 email: "jack@ryan.com",
 subscription: {"plan"=>"paid", "language"=>"English", "country"=>"Germany" },

不胜感激。谢谢

我尝试了几种不同的方式访问它,但总是出错

ActionView::Template::Error (PG::UndefinedColumn: ERROR:  column users.subscription['language'] does not exist
ActionView::Template::Error (PG::UndefinedColumn: ERROR:  column users.subscription.language does not exist
ActionView::Template::Error (PG::UndefinedColumn: ERROR:  column users.subscription[:language] does not exist

【问题讨论】:

  • 分享你用于创建User的迁移文件

标签: sql ruby-on-rails join


【解决方案1】:

您可以为此使用store_accessor,因此,您可以像这样(在您的模型中)配置哈希属性:

store_accessor :subscription, %W(plan language country)

这将为哈希键生成正确的 attr_accessor。

【讨论】:

    猜你喜欢
    • 2011-02-14
    • 2021-02-21
    • 1970-01-01
    • 2022-11-12
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    相关资源
    最近更新 更多