HABTM关系查找所有记录,排除一些基于关联的记录

2023-12-11

我看过一些与此相关的类似帖子,但我正在努力解决这个问题。

我在项目和用户之间有一个 habtm 关系。我正在尝试查找特定用户不属于的所有项目,但我不知道如何查找。

我尝试过这样的事情:

Project.where('project_id != ?', user.id)

但这也显然是错误的。

我正在使用 Rails 3.2.x

许多与此相关的答案都提到了范围,但我以前没有遇到过它们(我对 Rails 还很陌生)。

我刚刚发现this帖子有一个答案建议:Project.where('id not in (?)', user.projects)

这似乎有效,除非user.projects是空的。我想Project.where('id not in (?)', (d.projects.empty? ? '', d.projects)) 正如 JosephCastro 的回答评论线程中所建议的,但它在第二个问题上给了我一个语法错误d.projects.

Edit

与用户相关的项目模型片段

class Project < ActiveRecord::Base
  attr_accessible ...
  has_and_belongs_to_many :users, :before_add => :validates_unique

进而

class User < ActiveRecord::Base
  attr_accessible ...
  has_and_belongs_to_many :projects

您可以在项目模型中放置一个范围,如下所示:

scope :not_belonging_to, lambda {|user| joins(:projects_users).where('projects_users.user_id <> ?', user.id) }}

这假设您的连接表名称与 Rails 约定匹配HABTM协会

要获取用户不属于的项目,首先找到您的用户,然后将它们传递到范围,如下所示:

@user = User.find(params[:id]) # example
@unowned_projects = Project.not_belonging_to(@user)

经过反思,该范围将不起作用,因为它会找到拥有多个开发人员的项目(如果其中之一是您的人)。

相反,请使用以下内容:

scope :not_belonging_to, lambda {|user| where('id NOT IN (?)', user.projects.empty? ? '' : user.projects) }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HABTM关系查找所有记录,排除一些基于关联的记录 的相关文章

  • Rails f.check_box 设置选中/未选中值

    所以我在 Rails 中得到了一个带有复选框的表单助手 我希望该复选框在选中或取消选中时具有 thatvalue 或 thisvalue 值 我还没有找到如何设置它的地方 f check box field 我发现了类似的东西 但它不起作用
  • 如何使用 Rails 应用程序中的 s3 在存储桶之间复制文件?

    我目前正在开发一个 Rails 应用程序 尝试将视频从 s3 中的一个存储桶复制 移动到另一个存储桶 但是我在 Rails 应用程序上不断收到代理错误 502 在杂种日志中 它显示 无法分配内存 一旦发生此错误 应用程序就会终止 我们必须重
  • 在 Rails 4 中渲染部分/rake 任务/后台作业/模型中的视图

    我读过很多关于在 rake 任务 后台作业 模型中渲染 Rails 部分和视图的内容 我在 Stackoverflow 和网络上找到的绝大多数内容都描述了在 Rails 3 中工作的方法 但它们似乎已经过时了 而且我没有让它们工作 即使花了
  • ruby on Rails,会话过期通知

    我正在使用 ruby 1 9 3 和 Rails 3 2 我的实际会话处理如下所示 会话助手 def sign in user cookies remember token value user remember token expires
  • Rails:渲染不起作用,仍然出现“模板丢失”

    我目前正在学习 Rails 指南 我完成了这些步骤 但仍然遇到错误 我的 Ruby 版本是ruby 2 1 1p76Rails 版本是4 0 4 按照指南的指示 我创建了一个Article Controller class Articles
  • Memcachier 达到缓存限制时 Heroku 请求超时

    我使用 Memcachier Dalli 作为客户端 将 Rails 应用程序部署到 Heroku 我正在使用免费插件 提供 25 MB 缓存 我们开始收到来自heroku的请求超时 经过调试 我们发现手动刷新Memcachier解决了问题
  • Twitter Bootstrap 中下拉链接的模态

    我正在尝试从下拉菜单中的链接进行模式启动 该模式似乎已启动 网站变为灰色 但看不到 来自不在下拉列表中的常规链接的模态工作得很好 我对 jquery 进行了愚弄 但由于我是 jquery 的新手 所以没有任何结果 这是我的网站代码
  • 数据库分片和 Rails

    在 Rails 中处理分片数据库的最佳方法是什么 分片应该在应用层 活动记录层 数据库驱动层 代理层还是其他层处理 各自的优点和缺点是什么 FiveRuns 有一个名为的 gem数据结构 https github com bpot data
  • 带有附加参数的redirect_to

    我是一个菜鸟 redirect to users url notice Succeed p p 然后我添加一个message它失败了 redirect to users url notice Succeed message test p p
  • 使用复选框过滤列表

    我有一个电影列表及其评级 在我的页面顶部 我有一个表单 其中提供了一个复选框列表 其中显示了每个可用的评级 G PG 13 等 一旦用户单击复选框并点击提交 我只想显示所选的电影 在我的索引方法中 我有一个名为的实例变量 filtered
  • 回形针不支持 .doc 文件

    在 Rails 4 0 2 中 我使用回形针 gem 上传文件 但它不支持 doc 文件 在文件上传字段下方 显示一条错误消息 扩展名与其内容不匹配 在模型中 检查内容类型的验证如下 validates attachment content
  • 在 Web 应用程序中显示最新的提交值?

    我有一些 Rails 应用程序 我使用 Git 作为版本控制系统 我使用 GitHub 或 Beanstalk 作为存储库主机 从理论上讲 我想要做的事情非常简单 以某种方式在 Web 应用程序的页脚中显示最新的提交 ID 号 哈希值 这样
  • 回滚后是否应该删除迁移

    我对 ruby 和 Rails 相当陌生 刚刚开始了解迁移 我的问题是回滚后删除迁移的最佳实践或正确时间是什么 到目前为止 我读到的内容是回滚后是否删除迁移的观点问题 但是在团队中工作时删除迁移是否有任何重大影响 以及保留迁移文件相对于删除
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • 在 ActiveAdmin 或打印解决方案中动态更改分页

    我是 Activeadmin 和 Rails 的新手 我需要一些帮助 我有一个分页模型 我想允许用户更改分页值或完全禁用它 这样它就可以打印 到打印机 所有记录 或过滤后的记录 我知道我可以在 before filter 中使用 per p
  • 无法使用 Rails 6 Actiontext 渲染 youtube 嵌入 iframe

    我已经设置了一个自定义嵌入模型 这样我就可以将 Instagram 或 YouTube 嵌入等内容添加到我网站上的 ActionText 内容中 它适用于 Instagram 嵌入 但不适用于 YouTube 作为参考 我要显示的 yout
  • 在rails生成脚手架中跳过JSON格式

    当您使用类似命令生成 Rails 脚手架时rails g scaffold Thing有什么办法可以避免变得烦人吗 respond to do format format html index html erb format json re
  • Rails 3.1 中何时将图像放入 app/assets 以及何时放入 /public/images?

    我仍然不太明白 在这种情况下 在 Rails 3 1 中将图像放在哪里 图像被处理 例如通过回形针或蜻蜓 并存储在文件夹中 不使用像 s3 这样的外部服务 f e 在开发中 当我只有图像时 我将在样式表中使用它 例如背景 图标 AppSto
  • 将 Rack::Deflater 插入机架中的哪个位置?

    我目前有以下内容 use Rack Rewrite use Rack Cache verbose gt true metastore gt memcached localhost 11211 rack cache meta entityst
  • rspec 中的模拟方法链

    有一系列方法可以获得user目的 我试图模拟以下内容以返回user in my Factory Girl current user AuthorizeApiRequest call request headers result 我可以模拟该

随机推荐

  • SBT 在 Build.scala 中指定 java 堆大小

    我的 Build scala 文件内容 val commonSettings Seq version 1 0 0 organization com collective scalaVersion 2 11 4 scalacOptions L
  • ActionBarSherlock 和 ActionBar 兼容性之间的差异

    有什么区别动作栏夏洛克 and 操作栏兼容性 几天前 谷歌刚刚发布了 ActionBar 兼容性 这让我很困惑 Action Bar Compatibility 的工作原理与 ActionBarSherlock 相同并且编码相同吗 示例 是
  • Spring MVC 错误“NoSuchMethodError”

    我收到以下错误 请给我一些建议 我在用spring sts SEVERE StandardWrapper Throwable java lang NoSuchMethodError org springframework web conte
  • 解构中的 ES6 计算属性 - 解构整个对象

    我有这个变量 var a b 1 c 2 d rawr rawr 10 我想将它们解构到本地范围内 所以我这样做 var b c d a 这工作正常 但我需要得到rawr出去 我试过这个 var b c d a d a 但这给了我missi
  • Excel VBA:如何使用给定代码循环浏览同一文件夹中的工作簿?

    上一篇文章 我需要创建一个宏 循环遍历单个文件夹中的文件并运行我在下面提供的代码 所有文件的结构都相同 但是数据不同 该代码帮助我转到指定的目标文件并计算列中 YES 的数量 然后它将其输出到 CountResults xlsm 主工作簿
  • 相对于另一个向量对一个向量进行排序 - 最有效的方法?

    我知道这个问题已经 被问到 a few times 但对于简单的情况 其中紧凑性 可读性或用户熟练程度是决定因素 提供了不同的答案 我不确定哪一个是最有效率的 因为我担心重复该操作O 1M 次 设置如下 两个向量A and B of flo
  • 当多个活动处于活动状态时如何关闭应用程序

    我开了3个活动 现在用户想要退出应用程序 为此我必须完成所有活动 不建议这样做 但我的应用程序希望向用户提供这样的退出点 当多个活动处于活动状态时如何关闭应用程序 Thanks Android 中任何应用程序的所有活动都使用相同的进程 ID
  • 在 Angularfire 中什么时候使用 $asArray 和 $asObject ?

    看来有很多情况可以选择是否使用 asArray or asObject 在同样的情况下 你可以使用其中任何一个来逃脱 我是一位代码 js 初学者 但是什么时候应该使用 asArray 和 asObject 最新版本的角火1 0 0使用新的
  • 如何使用 Bison 实现“隐式乘法”规则?

    我正在为数学表达式解析器编写 Bison 文件 到目前为止 一切都很好 但我面临着隐式乘法的问题 你看 我想支持这样的表达2x sin 4x cos 4x 它应该像这样解析2 x sin 4 x cos 4 x 这里没什么太糟糕的 但请考虑
  • 数组什么时候在c中充当指针?

    我知道数组名称可以用作指针 尽管它是转换后的形式 但我的问题是 是否还有其他实例将数组用作指针 从技术上讲 数组名永远不会充当指针 一个 具有数组类型 可以是数组名称 的表达式将转换 每当数组类型不合法但指针类型合法时 都指向指针 并且数组
  • 将 FrameLayout 转换为位图

    我有一个 FrameLayout 其中包含一些图像视图和一个 EditText 我将此布局保存为内存中的图像 外部 第一次 当我在 imageviews 中设置图像时 一切都很顺利 即正在保存确切的图像 与屏幕上显示的相同 但是第一次保存后
  • Matplotlib 滚动条

    我有一个线泛化算法 并且想在图中添加一个滚动条 以增加容差 即使线变得越来越泛化 使用 matplotlib 这怎么可能 总而言之 我希望能够单击并拖动滑块 以显示线上公差效果的增加 仍然在努力解决这个问题 我只想要一个从 1 到 10 的
  • 如何将“IsDirty”属性添加到 LINQ to SQL 实体?

    我将我的实体绑定到 WPF 中的编辑表单 在 DataTemplate 中 我希望能够设置 DataTemplate 中根容器的背景颜色 以显示它已更改并且这些更改尚未提交到数据库 这是一个非常简单的示例 演示了我正在谈论的内容 请原谅错误
  • 使用 css 强制抗锯齿:这是一个神话吗?

    最近 一位客户抱怨 IE6 中系统字体的外观 基本上这个问题是 IE6 不支持字体平滑 抗锯齿 我知道你可以在操作系统设置或其他设置中打开它 但有人扔掉了这个宝石 您可以使用 pt 而不是 px 来强制 css 中的字体反锯齿 我在各种浏览
  • 使用 JHipster 将新字段添加到现有实体

    当我尝试向现有实体添加新字段时遇到问题 我运行这个命令 yo jhipster entity Libro 和我选择 BETA 是的 添加更多字段和关系 但是当我尝试使用 mvnw 编译我的项目时 我收到此错误http pastebin co
  • 托管 C++ 中 future 和 Promise 的替代方案是什么

    当使用 clr 标志编译托管 C 代码时 编译器不允许包含 我正在尝试将非托管 C 代码移植到托管 C 环境中 我看到 C 有替代方案 Task 和 TaskCompletionSource 来替代 futures 和 Promise 但我
  • 如何使用BottomNavigationBar显示活动(无法转换为片段)?

    我在显示我的活动时遇到问题 我不知道如何实现方法注意活动 to 主页片段 主页片段是由底部导航栏不执行注意活动 注意活动 public class NoteActivity extends AppCompatActivity private
  • Java多级比较器

    我正在解决一个问题 我必须从输入文件中获取这些 歌曲艺术家对 并按字母顺序排序 排序指南如下 应首先按作者姓名对歌曲 艺术家对进行排序 按艺术家排序后 如果同一艺术家有多首歌曲 也应按字母顺序排序 如果艺术家姓名以 The 开头 则出于排序
  • 如何将 int 拆分为其数字?

    如何将 C 中的 int 拆分为其单个数字 例如 我想将 23 拆分为 2 和 3 给定数字 12345 5 is 12345 10 4 is 12345 10 10 3 is 12345 100 10 2 is 12345 1000 10
  • HABTM关系查找所有记录,排除一些基于关联的记录

    我看过一些与此相关的类似帖子 但我正在努力解决这个问题 我在项目和用户之间有一个 habtm 关系 我正在尝试查找特定用户不属于的所有项目 但我不知道如何查找 我尝试过这样的事情 Project where project id user