0

我有一个Comment模型,它 has-many attachments。我要返回的是所有具有一个或多个附件记录的评论,或者评论超过 250 个字符的评论。

有没有什么办法可以做到这一点而不用完全用纯 SQL 编写?我正在努力在 rails 方法中建立一个 WHERE 子句。这并不像我希望的那么简单:(

理想情况下,我希望这是一个范围,但无论如何都可以

4

3 回答 3

3

你可以试试:

Comment.includes(:attachments).where('attachments.comment_id IS NOT NULL OR LEN(comments.content) > 250')
于 2013-05-09T16:25:11.510 回答
0

WHERE 子句应遵循以下伪代码的模式

WHERE Length(Comment_field) > 250
OR EXISTS (Select COMMENT_ID from attachments)
于 2013-05-09T16:12:49.127 回答
0

跳转到 irb 或 rails c(控制台)从命令行执行此操作以获取它然后将其插入。

 c     =  YourCommentModel.where('attachments > ?', 1)
len250 =  c = YourCommentModel.where('attachments.length> ?', 250)
第一个给出大于 1 的评论,第二个给出大于 250 的评论
于 2013-05-09T16:30:03.800 回答