问题标签 [has-many-through]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
509 浏览

ruby-on-rails - 使用 has_many AND has_one 将两个表链接在一起?

我确定这已经被问了一百万次了。我只是没有很好地搜索。我有以下设置:我有一个有很多事件的讲师。每个活动只有一名讲师(所有者/创建者)。我想添加一个单独的链接以允许关联其他讲师,但仍保留原始讲师(所有者)。我有一个粗略的 ASCII 表示,但我一生都无法弄清楚如何在 rails 模型中做到这一点。

0 投票
5 回答
27957 浏览

activerecord - 在has_many中过滤子对象:通过Rails 3中的关系

问候,

我有一个应用程序需要通过模型相互归属,该Companies模型包含有关成员资格的额外信息(特别是,用户是否是公司的管理员,通过布尔值)。代码的简单版本:UsersCompanyMembershipadmin

当然,这使得通过company.users.all, et al 获取公司的所有成员变得简单。但是,我正在尝试获取公司中作为该公司管理员的所有用户的列表(并且还测试用户是否是给定公司的管理员)。我的第一个解决方案如下company.rb

虽然这可行,但感觉效率低下(它迭代每个成员,每次都执行 SQL,对吗?或者 Relation 比这更聪明?),我不确定是否有更好的方法来解决这个问题(也许使用范围或 Rails 3 使用的花哨的新Relation对象?)。

任何关于最佳方式的建议(最好使用 Rails 3 最佳实践)将不胜感激!

0 投票
1 回答
987 浏览

ruby-on-rails - Rails:在来自不同数据库的表之间设置 has_many_through 关联

我正在尝试通过另一个连接模型 AccountOwnership 设置一个 has_many :through 两个模型 User 和 CustomerAccount 之间的关系(用户和 account_ownerships 表在一个数据库中,比如 db1,而 customer_accounts 表在远程数据库中,比如 db2)。

这是设置关联的相关代码

config/database.yml(配置正确,虽然这里没有显示)

在脚本/控制台中

这里的问题是“account_ownerships”和“users”表包含在一个默认数据库中(例如 db1),而“customers”表包含在另一个数据库中(例如 db2)。与数据库的连接配置正确,但在查找过程中,由于只有一个数据库连接对象可用,Rails 尝试在 db2 中查找 account_ownerships 数据库,因此失败。

看起来我的设计/逻辑可能有缺陷,因为我看不到使用相同的数据库连接连接到两个不同数据库的方法,但我很高兴看到是否有解决方法,而无需更改设计。(我不愿意改变设计,因为 db2 不在我的控制之下)

看起来我可以通过将 account_ownerships 表移动到 db2 来解决这个问题,但这至少对我来说不太理想。

是否有任何替代机制/模式可以在 Rails 中设置此关联。

提前致谢。米

0 投票
3 回答
1188 浏览

django - Django - 用表单和视图中的中间表处理多线程的好方法是什么

假设我有以下模型 -

通常,当items被“分配”给一个时,它们将具有与相关对象organization中最初记录的相同的值。Item但在某些情况下,分配给组织的项目可能会被覆盖value(因此是中间模型)。由于覆盖原始值很少发生(但确实会发生),我希望允许用户items从实例列表中简单地选择所需的值Item以将它们分配给组织实例。然后,用户可以选择在批量分配完成后覆盖单个值。

所以我有以下简单的 ModelForm -

现在,因为我有一个through模型,一个简单的 form.save() 将不起作用。我需要 (i) 保存Customizable与用户选择的项目相对应的实例,以及 (ii) 确保持久化的Customizable实例正确地取自由foreignkey 相关的实例所取value的对应实例。valueitem

我试图在一个视图中处理它(但我的思想被阻塞了) -

0 投票
1 回答
136 浏览

sql - 按多对多关联记录的计数对行进行排序

我知道还有很多其他的 SO 条目看起来像这个,但我还没有找到一个真正回答我的问题的条目,所以希望你们中的一个可以回答它或指出另一个相关的 SO 问题。

基本上,我有以下查询,它返回包含搜索的Venue任何s 的 s (本例中为“foobar”)。CheckInKeyword

我想SELECT和每个给定ORDER BY的匹配计数。例如,如果已经创建了 5 个 s,与 that 相关联,那么应该有一个返回的列(称为类似),其值是已排序的。KeywordVenueCheckInKeywordkeyword_count5

理想情况下,这应该在SELECT子句中没有任何查询的情况下完成,或者最好根本没有。

我已经为此苦苦挣扎了一段时间,而我的大脑一片空白(也许一天太长了),因此在这里将不胜感激。

提前致谢!

0 投票
2 回答
6874 浏览

ruby-on-rails - 设置 :has_many :through 关联上的 belongs_to 关联 Ruby on Rails

我有三个模型,每个模型都有以下关联:

正如您在评论文本中看到的那样,我已经提到了我需要的东西。

0 投票
1 回答
736 浏览

ruby-on-rails - Rails has_many 通过创建方法失败

我有 3 个模型:

然后我有一个表单,允许创建一个新项目并可以将用户分配给它。

表格是:

但是,由于某种原因,表中必须存在一条记录才能UserProject正常工作。

如果它不存在,关于如何创建关联的任何想法?

0 投票
1 回答
168 浏览

ruby-on-rails - 看似多余的 ActiveRecord has_many 定义

我一直在将has and belongs to many样式关联应用到我一直在从事的项目中,但是因为我想在我的连接模型中捕获额外的信息,所以我通过更精细的belongs_to/has_many方法而不是has_and_belongs_to_many. 在最初偶然发现这一点之后,我了解到我在我的模型 User 中需要这两个定义(在 Show 模型对应项中也是如此):

一切正常,我的问题更多是关于 Rails 语法的设计,因为我想确保我不会错过这里的大局:为什么第一个是必要的?如果我们要确定用户可以通过具有非标准名称的中间人访问节目列表saved_shows,为什么还要创建has_many :saved_shows

我猜我不是第一个遇到这个问题的人,所以我很好奇为什么 Rails 需要这个看似多余的定义。它只是一个选择不当的语法还是背后有一些更深层次的设计?

0 投票
2 回答
1382 浏览

ruby-on-rails - rails 3 has_many:通过记录保存错误

我不确定我的问题是什么,所以这个问题可能需要更多澄清,但这里似乎最相关:

我有一个has_many :through并且连接模型有一些不是外键的字段。当我建立模型并尝试保存时,我在连接模型的非外键字段上收到验证错误。

我的文件看起来像:

(角色是一个字符串)

返回的参数如下所示:

确切的错误是:

这显然是不正确的,因为您可以在params[]

我究竟做错了什么?

这是轨道 3.0.0

0 投票
2 回答
114 浏览

ruby-on-rails - 如何在 Rails 中使用 :through 关联的连接表上设置的条件进行查找?

我有以下型号:

我希望能够仅显示用户有权访问的任务(即,在表read中设置了标志)。我可以使用以下查询来完成此操作,但对我来说这似乎不是 Rails-y:truePermissions

有人知道这样做的正确方法吗?