ruby-on-rails - 查找对象时,如何按表中的字段对其获取的子对象进行排序
问题描述
假设有一个预订系统来预订某个活动的时间段。
我有一个事件模型和一个 time_slot 模型。每个事件都有man time_slots,每个slot都属于一个事件
class Event < ActiveRecord::Base
has_many :time_slot
end
class TimeSlot < ActiveRecord::Base
belongs_to :event
end
当我执行Event.find(some_id)
如何根据模型上的字段(例如“slot_time”)对返回的时隙进行排序时
解决方案
像这样:
Event.find(some_id).time_slot.order(:slot_time)
time_slot
实际上并没有返回所有关联的时隙,它返回一个 ActiveRecord::Relation,就像TimeSlot.where(booked: true)
会一样。因此,您可以将更多查询方法链接到此关系。
推荐阅读
- sql - 如何为以下条件编写选择查询
- azure-active-directory - 支持 Office 365 Enterprise E1 用户的 Azure AD MFA OATH 令牌功能
- javascript - 在 Jest 中编写测试时 Ref 为空
- laravel - 我如何返回多个页面的值.. 在 laravel 中我在下面给出的代码
- javascript - SQL - 如何获取单元格的特定值并将其保存到变量中?
- angular - 为什么我得到属性“地图”未定义
- java - 当整行为空时如何不将数据放入地图中
- c# - 不应为空的 C# 变量引发空引用异常
- oracle - 如何获取必填字段中的数据?
- python - 如何加快对 python 数组的操作?