我有一个Comment
模型,它 has-many attachments
。我要返回的是所有具有一个或多个附件记录的评论,或者评论超过 250 个字符的评论。
有没有什么办法可以做到这一点而不用完全用纯 SQL 编写?我正在努力在 rails 方法中建立一个 WHERE 子句。这并不像我希望的那么简单:(
理想情况下,我希望这是一个范围,但无论如何都可以
我有一个Comment
模型,它 has-many attachments
。我要返回的是所有具有一个或多个附件记录的评论,或者评论超过 250 个字符的评论。
有没有什么办法可以做到这一点而不用完全用纯 SQL 编写?我正在努力在 rails 方法中建立一个 WHERE 子句。这并不像我希望的那么简单:(
理想情况下,我希望这是一个范围,但无论如何都可以
你可以试试:
Comment.includes(:attachments).where('attachments.comment_id IS NOT NULL OR LEN(comments.content) > 250')
WHERE 子句应遵循以下伪代码的模式
WHERE Length(Comment_field) > 250
OR EXISTS (Select COMMENT_ID from attachments)
跳转到 irb 或 rails c(控制台)从命令行执行此操作以获取它然后将其插入。
c = YourCommentModel.where('attachments > ?', 1)
len250 = c = YourCommentModel.where('attachments.length> ?', 250)
第一个给出大于 1 的评论,第二个给出大于 250 的评论