ruby-on-rails - 如何访问模型子项的不同父项

标签 ruby-on-rails

我正在向一个不是我制作的旧应用程序添加一项功能,这加上 RoR 相对较新,导致我有些困惑。

我有名为reponseactivity_pointreport的模型

response 有两个父级,它属于 activity_pointreport

我正在尝试访问 do block 的 activity_points ,如下所示:

report.responses.activity_points.activity.each do |a|

显然这是行不通的。我收到错误消息:

undefined method `activity_points' for []:ActiveRecord::Relation

感谢任何能帮助我解决这个小问题的人。

最佳答案

或者您可以将类似的内容添加到您的报告模型中

has_many :responses
has_many :activity_points, :through => :responses
has_many :activities, :through => :activity_points

那么你可以这样做

report.activities.each do |a|

执行此类操作的另一种方法是向 Report 添加一个方法并从另一端加入(以获取事件对象)

def activities
  Activity.joins(:activity_points => :responses).where('responses.report_id = ?', id)
end

做这一切的重点是,如果不需要,您就不想创建 Ruby 对象。嵌套循环也是唯一项和排序的潜在问题。

关于ruby-on-rails - 如何访问模型子项的不同父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32103187/

相关文章:

ruby-on-rails - 带有 Octopus gem 的 Rails。如何使用 rake 创建在 shards.yml 中定义的数据库

ruby-on-rails - 为什么我的 Rails 服务器渲染时间不加起来?

ruby-on-rails - Rails - 如何编码 'may belong to?'

ruby-on-rails - 控制 Rails 中使用的 ruby​​ 版本

html - Bootstrap Navbar 品牌形象在崩溃时被压低

ruby-on-rails - Heroku 或 Rails 如何配置数据库?

ruby-on-rails - 如何在 Rails 5 中获取上传图像的二进制数据?

ruby-on-rails - 如何从GitHub安装Rails 3 master

ruby-on-rails - Rails — View 可以通过 attr_reader 访问 Controller 变量吗?

ruby-on-rails - ruby 中尴尬的三元评估