我有一个类 ImageCollection,它的状态可以是“事件”。这个类属于一个图像,它有一个名为“workflow_state”的属性。
我有以下工作但需要几秒钟才能执行:
def self.published
where(status: STATUS_ACTIVE).select { |x| x.image.workflow_state == Publishable::Meta.published_key }
end
以下不起作用:
scope :published, lambda {
where(status: STATUS_ACTIVE).joins(:image).where(
'image.workflow_state = ?', Publishable::Meta.published_key
)
}
并返回:
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'image.workflow_state' in 'where clause': SELECT `image_containers`.* FROM `image_containers` INNER JOIN `images` ON `images`.`id` = `image_containers`.`image_id` WHERE `image_containers`.`status` = 'active' AND (image.workflow_state = 'published') ORDER BY `image.containers`.`id` ASC LIMIT 1
我很困惑,因为图像表有一个 workflow_state
非常感谢任何帮助
最佳答案
如果您使用的是纯 SQL,则应使用复数形式的表名。
将:image.workflow_state
更改为 images.workflow_state
关于ruby-on-rails - Rails - 加入事件记录关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52724562/