【发布时间】:2019-11-13 17:51:23
【问题描述】:
我正在使用 Rails 5,并且我希望能够过滤一对多关系以仅将子项的子集发送到客户端。数据模型非常标准,看起来像这样:
class Parent < ApplicationRecord
has_many :children, class_name: 'Child'
end
class Child < ApplicationRecord
belongs_to :parent
end
当客户端拨打电话时,我只想为Parent 返回一些 Child 实例。
这也很复杂,因为应该返回 Child 对象的逻辑非常复杂,所以我在 Ruby 中而不是在数据库中进行。
每当我执行以下操作时,Rails 都会尝试更新数据库以删除关联。我不想更新数据库。我只想在将结果发送给客户端之前对其进行过滤。
parent.children = parent.children.reject { |child| child.name.include?('foo') }
有没有办法做到这一点?
【问题讨论】:
标签: ruby-on-rails ruby activerecord ruby-on-rails-5