将记录添加到 has_and_belongs_to_many 关系

2023-12-25

我有两个模型,用户和促销。这个想法是,一个促销可以有很多用户,一个用户可以有很多促销。

class User < ActiveRecord::Base
  has_and_belongs_to_many :promotions
end

class Promotion < ActiveRecord::Base
  has_and_belongs_to_many :users
end

我还有一个 Promotions_users 表/模型,没有自己的 id。它引用 user_id 和 Promotions_id

class PromotionsUsers < ActiveRecord::Base
end

那么,如何将用户添加到促销活动中?我尝试过这样的事情:

user = User.find(params[:id])
promotion = Promotion.find(params[:promo_id])
promo = user.promotions.new(promo)

这会导致以下错误:

NoMethodError: undefined method `stringify_keys!' for #<Promotion:0x10514d420>

如果我尝试这条线: 促销= user.promotions.new(promo.id)

我收到此错误:

TypeError: can't dup Fixnum

我确信我的问题有一个非常简单的解决方案,但我只是没有以正确的方式寻找解决方案。


user = User.find(params[:id])
promotion = Promotion.find(params[:promo_id])
user.promotions << promotion

user.promotions是与用户相关的促销活动的数组。

See the apidock http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_and_belongs_to_many适用于您可用的所有不同功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将记录添加到 has_and_belongs_to_many 关系 的相关文章

随机推荐

  • Android Studio 的 VSCode 键盘快捷键

    有没有办法在 Android Studio 的键盘映射设置下添加 VSCode 作为选项 Under File gt Settings gt Keymap 列出了许多其他选项 但它们都与 VSCode 相似 事实上 JetBrains 已经
  • Alembic 检测到已经存在的表,因此它尝试再次创建它们

    我的动态表模型如下 在数据库中没有测试列 我想用 alembic 更新它 class Animation Base tablename Animation id Column Integer primary key True index T
  • SQLi 并检索特定记录

    环顾四周 看到了很多 MySQL 答案 但没有看到 MySQLi 我正在尝试返回我选择的 1 行 目前我只能返回第一行 我想要实现的是 让我的主数据库通过 ID 链接 当您单击 ID 时 可以在另一页上仔细查看记录
  • Python:列表中的非重复随机值[重复]

    这个问题在这里已经有答案了 我正在尝试用 python 2 7 编写一个程序 该程序必须选择多个随机变量并将其打印出来 但该变量不能与之前打印出的任何变量相同 我一直在浏览谷歌和这个网站 但我还没有找到任何关于字符串的东西 到目前为止我只找
  • 如何在 MVC 中进行 foreach 循环来为项目设置新值。

    我试图在类中循环抛出对象并检查其数据类型 并进行控制 如果数据类型是字符串 那么我希望此项值为空 如果数据类型为 int 则此项的值为 0 依此类推 这是我的伪代码 ProductionOrderItem i new ProductionO
  • 使用ggplot2在地图上绘制条形图

    我必须使用在地图上绘制条形图ggplot2 library ggplot2 q ggplot data mapindia aes long lat group group colour geom polygon fill FF9999 co
  • java:稀疏位向量[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 中有哪些著名的稀疏位向量库吗 是否有关于稀疏与稀疏使用它们的有用程度的指南 java uti
  • 用于平面到嵌套/分层的 XSLT,具有级别插值?

    给定这个源 XML 文档 输入 xml p content p p content p p content p p content p p content p p content p p content p p content p p co
  • 在 swift 中实现文档选择器 (iOS)

    我想在我的 iOS 应用程序中选择任何类型的文件 pdf docs xlsx jpeg txt rtf 等 功能 点击时Upload按钮 我希望我的应用程序打开一个目录并选择文件 DocumentsPicker IBAction pickD
  • 使用 python 处理 excel 时出错

    当我的脚本同时更新一个 Excel 时 如果我要手动执行任何其他工作 而另一个 Excel 会发生错误 我正在使用调度 from win32com client import Dispatch excel Dispatch Excel Ap
  • Angular:Nodemailer 显示大量运行时错误

    在我的角度项目中 我想使用节点邮件程序发送邮件 第一个问题是当我尝试导入时 我的意思是在执行 npm i save 之后 当我这样做时会发生很多错误ionic serve 我想重复一件事 写完之后import行 这个大错误日志来了 应用程序
  • System.IO.File.Delete() / System.IO.File.Move() 有时不起作用

    Winforms 程序需要将一些运行时信息保存到 XML 文件中 该文件有时可能有几百千字节大小 在 Beta 测试期间 我们发现一些用户会毫不犹豫地看似随机地终止进程 有时会导致文件写入一半并因此损坏 因此 我们更改了算法以保存到临时文件
  • 语音搜索权限

    Running 谷歌语音搜索 https play google com store apps details id com google android voicesearch在我的 ICS Android 4 0 4 平板电脑上出现奇怪
  • 用于为 Java 应用程序构建交互式 shell 的库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找可以让我创建交互式 shell 的 Java 库 我已经做了一些搜索 但还没有找到很多 我发现的大部分内容都是用于向我的应用程序
  • Docker:使用 --volume 绑定安装的文件权限

    我遵循以下指南 https denibertovic com posts handling permissions with docker volumes https denibertovic com posts handling perm
  • C++ 使用模板对象进行操作

    我有课 class BarBase 和一个派生模板类 它存储一个指向成员函数的指针和一个指向同一类的对象的指针 template
  • Excel/VBA - 如何在字符串中每 N 个字符插入一个字符

    我有一份报告 导出时它在单个单元格中将订单号 始终为 7 位长 显示为单个字符串 例如 订单 1234567 和 9876543 将在单个单元格中显示为 12345679876543 每个单元格没有最大订单数 每个单元格的最大订单数都不同
  • 如何以编程方式更改 Mac OS X 中的背景?

    我将如何以编程方式更改 Mac OS X 中的桌面背景 我想使用 python 但我对任何可能的方式都感兴趣 我可以连接到终端并调用某个命令吗 来自 python 如果你有应用脚本 http appscript sourceforge ne
  • 如何将 URL 数组中的图像列表添加到文档中?

    假设我有一个充满图像源 URL 的数组 例如 var imgs http lorempizza com 380 240 http dummyimage com 250 ffffff 000000 http lorempixel com g
  • 将记录添加到 has_and_belongs_to_many 关系

    我有两个模型 用户和促销 这个想法是 一个促销可以有很多用户 一个用户可以有很多促销 class User lt ActiveRecord Base has and belongs to many promotions end class