ruby-on-rails - 如何使用 ActiveRecord 返回 Rails 中关联的模型对象

标签 ruby-on-rails ruby-on-rails-3 activerecord

假设我有以下三个对象:

class Filing < ActiveRecord::Base
    belongs_to :company
    has_many :people , :dependent => :destroy
end

class Company < ActiveRecord::Base
    has_many :filings
end

class Person < ActiveRecord::Base
    belongs_to :filing
end

我正在尝试发出一个返回文件及其关联公司的请求以及包含其关联人员的数组。这用于 GETfiling/:id 的 API 请求

我看到了 joining tables with ActiveRecord 上的文档,但是当我运行以下查询时:

Filing.joins(:people,:company)

结果集中似乎不包括关联的人员或公司。如果关联的数据不会返回,我对为什么要进行联接感到有点困惑。我在这里缺少什么?我应该运行什么查询?

更新

正如评论中提到的。我希望能够生成以下输出:

{ "filing" => { "filing_id" => 123, "company" => { ... }, "people" => [{"person_id" => 1}, {"person_id" => 2}] } }

最佳答案

在评论者的帮助下,我最终找到了答案。需要调用的是:

Filing.find( id , :include => [:company,:people] )

关于ruby-on-rails - 如何使用 ActiveRecord 返回 Rails 中关联的模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13459000/

相关文章:

ruby-on-rails - NoMethodError(未定义方法 `locked'

ruby-on-rails - 延迟作业将每个请求两次插入后端?

ruby-on-rails - Rails 3.1 和 Heroku - 即使使用 'therubyracer-heroku' 仍然无法工作

ruby-on-rails - GPGME Passphrase 提示问题(Ruby)

ruby-on-rails - 翻译事件管理员 default_actions

ruby-on-rails - 如何重构 RSpec 文件中的辅助方法?

ruby-on-rails - 如何使Rails在记录消息时添加行号/时间戳?

ruby-on-rails - 创建模型实例时如何建立 has_and_belongs_to_many 关联

ruby-on-rails - ruby rails : add a new route

ruby-on-rails - Activerecord-import 获取 ArgumentError : Invalid arguments! 错误