ruby-on-rails – 将记录添加到has_and_belongs_to_many关系

我有两个型号,用户和促销.这个想法是,促销活动可以拥有许多用户,用户可以有很多促销活动.
class User < ActiveRecord::Base
  has_and_belongs_to_many :promotions
end

class Promotion < ActiveRecord::Base
  has_and_belongs_to_many :users
end

我也有一个promotion_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>

如果我尝试这一行:
promo = 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是与用户绑定的促销数组.

有关您可用的所有不同功能,请参阅apidock.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...