【发布时间】:2017-02-14 09:59:29
【问题描述】:
parts = Participation.joins(:booking).where(bookings: { date_of_booking: Date.yesterday }, payment_status: 2)
我有上面的join语句,即使date_of_booking列存在,mysql也会报错
ActiveRecord::StatementInvalid: Mysql2::Error: 'where 子句'中的未知列'bookings.date_of_booking': SELECT
ad_trek_participant.* FROMad_trek_participantINNER JOINad_trek_bookingONad_trek_booking.Id=ad_trek_participant.Booking_Id其中bookings.date_of_booking= '2017-02-13' ANDad_trek_participant.payment_status= 2
请在这方面提供任何帮助。
【问题讨论】:
-
Participation和Booking有什么关联 -
@DeepakMahakale
Participation belongs_to Booking和Booking has_many Participatipation -
能否请您发布两个模型的表结构
-
我相信你的表名是来自错误的 ad_trek_bookings。不是预订。在你的哪里试试这个名字?看起来您正在使用约定中的差异表名称并将其屏蔽,然后 rails 在此查询中感到困惑
-
@dstull 谢谢,我改成
parts = Participation.joins(:booking).where(ad_trek_booking: {date_of_booking: Date.yesterday})并且成功了
标签: mysql ruby-on-rails