ユーザーとプロモーションの2つのモデルがあります。プロモーションには多くのユーザーを含めることができ、ユーザーは多くのプロモーションを行うことができるという考え方です。
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>
代わりにこの行を試してみると:promo = user.promotions.new(promo.id)
このエラーが発生します:
TypeError: can't dup Fixnum
私の問題には非常に簡単な解決策があると確信しており、正しい方法で解決策を探しているわけではありません。