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