我有两个模型,用户和促销。这个想法是,一个促销可以有很多用户,一个用户可以有很多促销。
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(使用前将#替换为@)