- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我与多态直通模型有相当复杂的关系。在应用程序中,有一个标签系统,可以在其中标记用户和另一个模型。为了避免重复的字符串条目,我使用了直通模型 (TagLink),其中包含标记 ID、标记模型名称和标记实例 ID。
所以我有
User --+
|
+---> TagLink -----------> Tag
| - tagId - id
Item --+ - taggableId - text
- taggableName
(User or Item)
链接关系是hasAndBelongsToMany
。问题是,当我将新标签发布到 /items/:id/tags
或 /users/:id/tags
时,它会被保存,但我可以创建为许多我想要的相同文本,没有任何错误。
我想要的是,在发布到 /items/:id/tags
或 /users/:id/tags
后,它:
TagLink
条目(这是当前行为,但即使相同的标签已存在)TagLink
条目我想到了两种解决方案:
Tag
的创建方法来检查是否存在,然后手动创建一个 TagLink
条目(如果存在)。如果没有,请按默认操作。/tags
),然后强制在 /{items,users}/:id/tags
上使用标签 ID .理想情况下,我更喜欢第一个,因为它更透明并且 API 更流畅。
因此,欢迎任何线索!
最佳答案
我最终做了第一个解决方案,这非常简单。这个想法是替换引导脚本中的 User.create
方法,该方法查找具有相同文本
的标签,如果找到则返回它。
module.exports = function(app) {
var Tag = app.models.Tag;
// Override Tag.create to avoid duplicates
Tag.createRaw = Tag.create;
Tag.create = function(data, token, cb) {
// Find matching tag
Tag.findOne({where: {text: data.text}}, (err, tag) => {
if (err) cb(err);
// If the tag is found, return it
else if (tag) cb(null, tag);
// Else create it
else Tag.createRaw(data, token, cb);
});
}
}
关于javascript - 避免多态 hasAndBelongsToMany 通过模型关系中的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43997951/
我在用户和位置之间建立了 HABTM 关系。两种型号都有相应的 $hasAndBelongsToMany变量集。 当我管理用户位置时,我想删除用户和位置之间的关联,而不是位置。显然这个位置可能属于其他
这些 HasManyThrough 与 HasAndBelongsToMany 之间有什么区别?? https://docs.strongloop.com/display/public/LB/HasM
我与多态直通模型有相当复杂的关系。在应用程序中,有一个标签系统,可以在其中标记用户和另一个模型。为了避免重复的字符串条目,我使用了直通模型 (TagLink),其中包含标记 ID、标记模型名称和标记实
我有一个小问题。我正在制作一个有标签和问题的网站。我有一个 Question 模型、Tag 模型、QuestionsTag 模型,一切都很好地结合在一起。用户在询问某事时将标签放在由空格(foo ba
假设我在帖子和标签(更改域对象名称以保护无辜者)之间存在多对多关系(使用 ActiveRecord 属性 HasAndBelongsToMany),并且我想要一个类似 FindAllPostByTag
无论如何,我不太擅长 SQL,但我在使特定查询工作时遇到问题。 我有文件和图像作为表格。它们通过 archives_images 表连接。我有我想要的存档的 $id,并且我正在尝试对在 archive
CakePHP 等的新手,我对以下问题非常困惑,因此非常感谢任何指导。本质上,我在 hasAndBelongsToMany 关系方面遇到了问题,而且我不知道我是否在正确处理它,因为我在一个 Contr
我定义了两个模型:“部分”模型: { "name": "part", "base": "PersistedModel", "idInjection": true, "options":
我目前正在处理我的第一个 Loopbackjs 项目,并且面临一个看似简单的问题:假设我有一个模型“Post”和一个模型“Tag”。一个帖子拥有并属于多个标签。 现在我需要列出所有带有特定标签的帖子。
我在 Strongloop Loopback API 中有 2 个模型 产品 标签 我在这 2 个模型之间定义了一个 hasAndBelongsToMany 关系。在我的 CMS 中,我想为我的产品提
我在使用 uuid 时也尝试使用多态的 HasAndBelongsToMany 关系。我的问题是,我不能教 Strongloop 在必要的多对多表中将 id 与字符串一起用作类型而不是数字。这会在创建
我的数据库中有这些表,它们在 cakephp 中有相应的模型: 表主题:- 编号- 名称 表学术界:- 编号- 全名 表academics_topics(许多主题可以由许多讲师教授):- 编号- ac
我有一个相当复杂的问题要告诉你有关 Stackoverflow 的信息,你看我有三个表,我需要为应用程序定义它们之间的关联。这些表是:工程师、票证和测试用例。我需要在工程师和票证之间有一个 $hasM
我正在使用 Strongloop API 平台,更具体地说是 Loopback 来创建 API。 我已使用 Model2 添加了与 Model1 的 hasAndBelongsToMany 关系。 效
我是一名优秀的程序员,十分优秀!