【问题标题】:Ruby on Rails 2.3.8: How do I do a custom SQL query, returned as an object / ActiveRecord object, rather than a hash?Ruby on Rails 2.3.8:如何执行自定义 SQL 查询,以对象/ActiveRecord 对象而不是哈希返回?
【发布时间】:2011-10-14 01:54:54
【问题描述】:

乐码:

ActiveRecord::Base.connection.select_all("Le Query")

上面将返回一个哈希格式如下:

{"name"=>"title", "sequence"=>"0", "body"=>"", "section_id"=>"74", "id"=>"325", "revision"=>"2"}

现在,通常情况下,如果只是执行ModelName.find(conditions),我会得到如下内容:

#<ObjectName id: 272, name: "title", body: "", sequence: 0, section_id: 89, revision: 0>

现在,有没有办法将哈希转换为一种格式,如果哈希存储在变量“a”中,我可以这样做:

a.name

就像是一个活跃的记录对象,而不是

a["name"] 

就像我目前对上述哈希所做的那样

【问题讨论】:

    标签: mysql ruby-on-rails activerecord


    【解决方案1】:

    MyModel.find_by_sql("Le Query")

    【讨论】:

      【解决方案2】:

      你尝试过这样的事情吗?

      a = ModelName.new(ActiveRecord::Base.connection.select_all("Le Query"))
      

      【讨论】:

      • 啊,有点。它不会让我设置 ID ......我需要为视图执行此操作,并且我的整个功能都是 DRY。错误:警告:无法批量分配这些受保护的属性:id
      • 尝试将 id 从哈希中提取出来,然后将其设置到对象中?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      相关资源
      最近更新 更多