问题标签 [has-and-belongs-to-many]

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 投票
1 回答
2721 浏览

cakephp - Cakephp 检索 HABTM 的条件

我正在使用 cakephp 并希望显示属于“X”类别的所有提交我有 4 个具有 HABTM 关系的表。

用户 -> (haveMany) -> 提交 <-> (hasAndBelongsToMany) <-> 类别

但我想使用 $this->paginate() 这样做,并且对于每个提交,我想显示发布提交的用户。

用户表

提交表

类别表

提交类别表

我真的很难创建一个可以做到这一点的分页,我开始认为这是不可能的,除非我错过了一些东西。

如果我没有使用 cakephp,这就是我想要做的查询

0 投票
2 回答
2467 浏览

ruby-on-rails - RSpec 测试关系逻辑

我正在测试以下内容:

帐户

所有权加入模式

测试

我不断收到这个错误

我真的不明白 - 什么父母?使用“创建”方法时,不应该创建和保存所有模型吗?我试过把'account.save'放在任何地方。

0 投票
2 回答
859 浏览

ruby-on-rails - HABTM,还是多个belongs_to?

我正在自学 Rails,作为一个测试项目,我正在模拟一个类似于 stackoverflow 的简单问答应用程序。

在我的简化版本中,我有:

  • 问题
  • 答案
  • 用户(问题和答案的作者)
我知道答案属于问题。

  • 用户和问题之间的正确关系是什么?
  • 用户和答案之间的正确关系是什么?

在我看来,问题和答案并不是真正“属于”用户,而是问题和答案“有一个用户”(作者)。但这似乎也不对,因为这样用户就会“belong_to question”和“belong_to answer”。

HABTM 是三个类别之间的答案吗?

很多人都被这种关系所困扰,不是吗?:)

0 投票
2 回答
1176 浏览

ruby-on-rails - 如何创建一个没有错误地删除/销毁的rails habtm?

我创建了一个简单的示例作为健全性检查,但似乎仍然无法破坏 rails 中 has_and_belongs_to_many 关系两侧的项目。

每当我尝试从任一表中删除对象时,都会收到可怕的 NameError /“未初始化常量”错误消息。

为了演示,我创建了一个带有 Boy 类和 Dog 类的示例 rails 应用程序。我为每一个都使用了基本的脚手架,并创建了一个名为boys_dogs 的链接表。然后,我添加了一个简单的 before_save 例程,以在任何时候创建一个男孩并建立关系时创建一个新的“狗”,以便轻松设置。

狗.rb

男孩.rb

架构.rb

我在这里和其他地方看到了很多关于类似问题的帖子,但解决方案通常使用belongs_to 并且复数/单数类名被混淆。我不认为这里是这种情况,但我尝试将 habtm 语句切换为使用单数名称只是为了看看它是否有帮助(没有运气)。我似乎在这里遗漏了一些简单的东西。

实际的错误信息是:

BoysController#destroy
未初始化常量 Boy::Dogs 中的 NameError

跟踪看起来像:

/Library/Ruby/Gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:105:in destroy_without_callbacks' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.4/lib/active_record /callbacks.rb:337:in发送' ...const_missing'
(eval):3:in

destroy_without_transactions'
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.4/lib/active_record/transactions.rb:229:in

谢谢。

0 投票
1 回答
260 浏览

ruby-on-rails - Rails 试图发送一个 habtm 模型连接表的 id?

所以我有两个 Rails 模型——用户和角色——每个模型都指定了一个 habtm 和一个 users_roles 连接表。

当我从我的用户表单中保存时,该表单具有可供选择的角色的复选框,rails 试图手动将一个值插入到连接表的 id 列中。这对我来说没有意义,因为 id 列应该设置为 auto_increment ,因此不需要传递给它的值。每当我尝试保存时,都会出现 MySQL 错误。

我错过了什么吗?

谢谢。

0 投票
2 回答
3687 浏览

ruby-on-rails - 验证 has_and_belongs_to_many 的存在

嗨,我在模型中使用 has_and_belongs_to_many。我想为种类设置存在的valitor。并将每个核心的最大种类数设置为 3

我能怎么做?

谢谢

0 投票
2 回答
2190 浏览

ruby-on-rails - Rails - HABTM 关系...存储用户的复选框值

我试图找出这个 HABTM 关系问题,以便在我的数据库中存储用户的利益。兴趣表有一个带有 id 和 name 的不同兴趣列表(即: id=1 ,name = 'Music')

我有一个用户模型 => user.rb

和一个兴趣模型 => interest.rb

现在我正在尝试从复选框列表中编辑或更新用户的兴趣选择。控制器看起来像这样 =>

param_posted 函数看起来像这样

视图逻辑如下所示:

我认为一切看起来都很干净,但是当我运行视图时,我得到了错误:

InterestController#edit 中的 NoMethodError - # User:0x4797ddc 的未定义方法“interest”

我是否需要创建一个单独的模型/表格来将用户的兴趣与事件联系起来?像 InterestsofUsers (id, user_id, interest_id)?我认为HABTM关系将消除对那个的需要......

使困惑

0 投票
1 回答
5751 浏览

ruby-on-rails - HABTM 关系和连接表

我正在尝试连接我拥有的两个连接表的值并根据条件关系显示结果......我遇到了一些问题

我有一个用户模型(:名称,:密码,:电子邮件),事件模型(:名称,:etc)和兴趣模型(:名称)

我在每个模型中创建了大约 5 条记录。

然后我创建了两个连接表 -> UsersInterests 和 EventsInterests;每个不包含主键,仅分别由 user_id/interest_id 和 event_id/interest_id 组成。

然后我在模型文件中添加了 HABTM 关系

现在我想创建一个控制器,它只查找用户兴趣与事件兴趣相对应的事件

经过一段时间的研究,我发现我需要在

或类似的东西......我有点迷路了......你如何陈述查找条件?......我知道如何在sql中进行内部连接,但我正在寻找优雅的Rails方式来做到这一点。 ..有什么建议吗?

0 投票
1 回答
236 浏览

ruby-on-rails - HABTM 关系和命名范围

我已经为此工作了一段时间,我似乎无法找到哪里有错误。

我有一个用户模型(:名称,:密码,:电子邮件),事件模型(:名称,:等)和兴趣模型(:名称)[>所有单数<]

然后我创建了两个连接表 -> UsersInterests 和 EventsInterests;每个不包含主键,仅分别由 user_id/interest_id 和 event_id/interest_id 组成。[>复数<]

我的模型包含 HABTM 关系如下

Whew..ok 所以我想创建一个 named_scope 来查找与特定用户有共同兴趣的所有事件。这是有人帮助我的一些代码。

当我从控制器运行时 =>

我收到 SQL 错误:“没有这样的列:Event.id: SELECT "events".* FROM "events" LEFT JOIN events_interests ei ON ei.event_id =......."

现在我确定事件模型有一个 id 并且我认为我的所有列名都是正确的..任何人都可以看到缺少什么吗?

0 投票
4 回答
4630 浏览

ruby-on-rails - 在 Rails 中创建大量 HABTM 关联的最快方法是什么?

我有两个表,在 Rails 中有一个 HABTM 关系。类似于以下内容:

现在我有一个新Foo对象,并且想要为它批量分配数千个条形图,我已经预加载了这些条形图:

最快的方法是什么?我试过了:

两者都运行得很慢,每个条目如下所示bar

bar_foos 列 (1.1ms) SHOW FIELDS FROM bars_foos SQL (0.6ms) INSERT INTO bars_foos( bar_id, foo_id) VALUES (100, 117200)

我查看了 ar-extensions,但import如果没有模型 (Model.import),该函数似乎无法工作,因为模型 (Model.import) 无法将其用于连接表。

我需要编写 SQL,还是 Rails 有更漂亮的方法?