问题标签 [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 投票
4 回答
10927 浏览

ruby-on-rails - 在 Rails 中 has_and_belongs_to_many

在 rails 中使用 has_and_belongs_to_many 关联而不是 has_many :through 有什么明显错误吗?我知道这些 描述差异和解决方法的文章 ,但它们是从 2006 年开始的。从我在 SO 上阅读的内容来看,似乎人们认为 habtm 既旧又笨重,但如果一个简单的多对多加入没有必要的模型是你要找的吗?

想法?

0 投票
3 回答
2038 浏览

ruby-on-rails - HABTM 2 表 2 种不同的关系

我有一个服务类型表,其中包含几十个服务的 ID 和名称。

我有一个 Projects 表,其中必须有一个 Proposed Services 列表和一个 Accepted Services 列表。

我知道我会在两边都使用 HABTM,中间有一个 project_service_types 表。

当我在同一张表之间有 2 个不同的关系时,我不知道该怎么做。我怀疑它使用 :join_table 和 :associated_forign_key,但我无法让它在我的应用程序中工作。

谢谢。

0 投票
5 回答
6535 浏览

ruby-on-rails - 保存 has_and_belongs_to_many 孩子

我有一个用户模型和一个角色模型。它们由 has_and_belongs_to_many 关系连接。当管理员创建用户时,我希望他们能够为用户分配角色并在我调用 @user.save 时将其保存

但问题是我收到一个警告,说我无法批量分配角色关系。

关于如何去做的任何建议,我在 Rails 2.3.2

谢谢。

编辑:按要求编码。

用户.rb

角色.rb

查看:new.html.haml

我希望通过在我的创建选项中调用 @user.save 将角色保存给用户。那可能吗?或者这是我不能用那种方式使用的关系,我是否需要一个 has_many 关系才能做到这一点。

0 投票
1 回答
3119 浏览

cakephp - Cakephp Tagging - 自动保存新标签和标签关系

我在 CakePHP 中阅读了很多关于标记的信息,但我找不到一种“干净”的方式来保存帖子和该帖子的标签。我拥有所有必需的 Post 表、模型和控制器、标签表、模型和控制器以及 posts_tags 表。我在帖子和标签模型中创建了 HABTM 关联。

如果我想保存一个新帖子,我希望 CakePHP 自动保存与该帖子关联的标签,但我找不到正确的方法。在大多数教程中,您必须使用“帮助”函数(http://www.jamesfairhurst.co.uk/posts/view/full_cakephp_application_part_5 =>“_parse_genres”)或类似的东西,但我认为与 CakePHP 的交易是吗,一旦您正确设置,这一切都是由 Cake 完成的。

所以我的问题是,是否有一种“干净”的蛋糕方式来做到这一点,还是我必须使用辅助功能?

0 投票
1 回答
2085 浏览

ruby-on-rails - ActiveRecord 无法更新 HABTM 关系

我正在使用一个简单的模型进行用户授权,其中包含两个 ActiveRecords UserRole User并且Role彼此之间具有 HABTM 关系。

我尝试创建一个用户界面,通过简单的复选框为用户分配角色——就像在Railscasts Episode #17中一样。

我的问题是既不User#new也不User#update_attributes使用我的表单提交的参数来更新User对象与其角色之间的关系。params[:user][:role_ids]包含正确的值。但是在or@user.roles之后调用会返回一个空数组。User.new(params[:user])@user.update_attributes(params[:user])

@user.roles使用or手动分配角色@user.role_ids,但不是 or 中的“魔法User#newUser#update_attributes

有任何想法吗?

0 投票
1 回答
2940 浏览

cakephp - 如何将数据写入 CakePHP 中 HABTM 连接表的 HABTM 关联?

我正在尝试使用以下结构保存数据:替代文字

如您所见,用户体验表之间存在 HABTM 关联。在experience_userstags之间还有另一个 HABTM 。我创建了以下表格:

一切正常。saveAll方法创建新体验,将这种新体验分配给两个用户(通过 Experience_users 并设置周围的东西。

困扰我的是,我想为新创建的experience_users记录(第一个)分配一些标签。我想,这应该通过一些评论的东西来完成。此注释代码的每一行都会创建表单并将数据发送到$this->data,但它永远不会被保存。

所以我的问题是:在我的示例中,将数据保存到experience_users_tags中的$this->data$form->input的正确语法是什么?

0 投票
1 回答
4337 浏览

ruby-on-rails - Rails has_and_belongs_to_many 让我对固定装置和工厂感到困惑

一般困惑
我有可以有 3 种流派的乐队。我在以前的 SO 帖子中读到,处理此问题的正确方法是几个步骤:

1) 在band.rb中

2)创建一个band_genres连接表

即使在阅读了文档之后,我对 HABTM 的实际含义还是有些困惑。我想我通常会认为“一个乐队有很多流派”,没有也属于很多。因此,对此进行快速的愚蠢解释会很棒。

与夹具混淆

另外,在为 band_genres 做固定装置时,我有

我得到一个“未知”的乐队专栏。我认为 rails 应该知道“收割者乐队”将指代乐队夹具中的乐队(当然同名)并会获取该 ID 并知道此夹具中的“乐队”将指代连接表中的 band_id . 我宁愿我的灯具看起来像这样,也不愿有硬编码的数字。

与工厂混淆

当我在工厂创建乐队时,我想为其分配流派:

我意识到在这里我可能需要一个硬编码的genre_id。但是为什么 rails 不看那个并说“哦,他想将 id=2 的流派添加到 band_genres 表”。

我不指望 rails 会为我处理所有肮脏的工作,但我确实想遵守规则。

0 投票
2 回答
3516 浏览

ruby-on-rails - 与单表继承关联的 HABTM 关联

我有一个产品模型,它有很多部分,一个部分可以属于许多产品。

截面模型具有特征、标准和选项的子类。

我的模型是:

在我的产品控制器中,我可以这样做:

我希望能够像这样访问子类:

但它只是“未定义的方法'功能'”等错误。

请问谁能告诉我该怎么做?

0 投票
2 回答
21680 浏览

ruby-on-rails - 如何在不删除项目本身的情况下删除单个 HABTM 关联项目?

如何在不删除项目本身的情况下删除 HABTM 相关项目?

例如,假设我有 3 个学生一起上科学课。如何从 StudentClasses 表中删除 Science 对象而不删除实际的 Science 参考?我猜这 Student.Classes.first.delete不是一个好主意。

我正在使用带有拖放功能的 JavaScript 来添加和删除,而不是复选框。有什么想法吗?

0 投票
2 回答
241 浏览

cakephp - post habtm postlover : 如何按 postlover 的数量排序帖子?

请帮助我,我真的很努力解决这个问题......

作者可以写帖子,作者可以喜欢其他作者的帖子……

所以帖子属于作者(当作者写它们时),但属于 habtm 作者(当作者喜欢它们时)。

例如,我想获取按帖子爱好者数量排序并在过去 24 小时内创建的帖子。这是我的模型和连接表:

表:lovedposts_postloves id:INTlovepost_id:INT postlover_id:INT

后模型

作者模型