我有一个会议类,其中包含一个“天”属性,我已将其序列化为一个数组。这里描述了我用来存储数组的方法:
Ruby模型的链接数组属性
例如,运行:
Meeting.first.days
可能会返回:
["Monday", "Tuesday", "Wednesday"]
下面是整个 Meeting 对象的示例:
#<Meeting id: 7, address: "10 Canal Street", neighborhood: "Tribeca", building_name: "Yale Club", name: "Alumni Luncheon", start_time: "00:00", end_time: "00:35", notes: "", days: ["Tuesday", "Wednesday", "Thursday"], zip_code: 10055, special_interest: nil, meeting_type: nil, area: "Manhattan", latitude: 40.8104529, longitude: -73.9922805, created_at: "2013-09-29 22:02:29", updated_at: "2013-09-29 22:02:29">
我有一个搜索表单,其中包含与星期几相对应的复选框,因此用户可以检查他们想要搜索会议的日期。例如,用户可能希望查看日期包括星期一的任何会议。
我的期望是搜索返回任何在其“天”数组中包含“星期一”的会议对象。但我无法使用 ActiveRecord 过滤这些会议。到目前为止,我有:
meetings = Meeting.order(:start_time)
meetings = meetings.where("days in (?)", days_params)
但这会不断将“会议”变量过滤为 0 个结果。我可能是错的,但我认为问题在于,这仅在“days”不是数组时才有效,即如果我将字符串与数组进行比较,那么它可能会起作用。由于我需要比较两个数组的并集,有人知道吗?