**修改为更好的可理解性**
**编辑重新命名为文档**
我想用给定用户的投票记录获取所有用户的文档记录,如果该用户没有投票支持某些文档记录,我仍然希望得到所有的文档记录,而无需投票.
例如:
+------------+--------------+------+ |document.par1|document.par2| Vote | +------------+--------------+------+ | 2 | z | y | | 3 | w | NULL | | 4 | x | NULL | +------------+--------------+------+
在Ruby on Rails上,如果我尝试这样:
冷杉试试:
Document. joins("LEFT JOIN `Votes` ON `Votes`.`v_id` = `document`.`id` AND `Votes`.`giver_id` = ?",user_id). where('document.creator_id = ?',user_id,.....). select('Votes.*',`document.param1')
我收到这个错误:
RuntimeError in UserDocumentsController#show unkNown class: Fixnum
II.第二尝试:
Document. joins("LEFT JOIN `Votes` ON `Votes`.`v_id` = `document`.`id`"). where('document.creator_id = ? AND `Votes`.`giver_id` = ?',`document.param1')
仅返回有投票记录:
+-------------+-------------+------+ |document.par1|document.par2| Vote | +-------------+-------------+------+ | 2 | z | y | +-------------+-------------+------+
所以没有2条记录..
**更新,此解决方案工作**
III.我的第三个尝试,谢谢你的帮助Mischa:
Document. joins("LEFT JOIN `Votes` ON `Votes`.`v_id` = `document`.`id`"). where('document.creator_id = ? AND (`Votes`.`giver_id` = ? OR `Votes`.`giver_id` IS NULL)',user_id). select('Votes.*',`document.param1') +-------------+-------------+------+ |document.par1|document.par2| Vote | +-------------+-------------+------+ | 2 | z | y | | 3 | w | NULL | | 4 | x | NULL | +-------------+-------------+------+
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。