私はhas_and_belongs_to_manyテーブルに新しいリンクを作成するのと混同しています。product_idキーをhas_and_belongs_to_manyテーブルに保存することはできませんか?キーは自動増分です
私は.build(...)の使用が間違っていると思いますが、修正方法を見つけることができません。
は私が書いた:
@user = User.find(1)
if (params[:product_id])
@user.products.build(params[:product_id])
end
logger.debug "product id is #{params[:product_id]}"
respond_to do |format|
if @user.save
...
そして、私のテーブルproducts_usersで保存された関係は、自動インクリメントである??? myテーブルの内容の例:(user_id; product_id)= {(1; 16)(1; 17)(1; 18)...}
そして、これらのテーブルでblanck行を作成します新しいID ...?それはビルドの原因ですか?
しかし、ロガーでは、私は正しい値を見ました:params [:product_id] ...だから私は何を忘れましたか? :
class User < ActiveRecord::Base
has_and_belongs_to_many :products
end
class Product < ActiveRecord::Base
belongs_to :group
has_and_belongs_to_many :authors
has_and_belongs_to_many :users
end
を働いたものです。ここでは私のために働いていたものです:@user = User.find(1)\t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t (のparams場合[:product_id]) \t \t \t @product = Product.find(paramsは[:PRODUCT_ID])@ user.products.includeない限り \t \t \t(@製品) \t \t \t \t @user?。製品<<ように見える\t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \tエンド \t \tエンド –