ユーザーの製品を保存するときに、現在のユーザーをuser_productテーブルに追加するにはどうすればよいですか。
ビルドメソッドにパラメーターを渡すことができることを示す情報をオンラインで調べましたが、これは機能しません。エラーメッセージは、「保護された属性を一括割り当てできません:user_id」です。
製品コントローラー:
def new
@product = Product.new
@product.user_products.build(:user_id => current_user)
respond_to do |format|
format.html # new.html.erb
format.json { render json: @product }
end
終わり
私のモデルは:Product
、、User
User_Product
クラスProduct<ActiveRecord:: Base
attr_accessible :name, :issn, :category, :user_products_attributes
validates_presence_of :name, :issn, :category
validates_numericality_of :issn, :message => "has to be a number"
has_many :user_products
has_many :users, :through => :user_products
accepts_nested_attributes_for :user_products
end
class UserProduct < ActiveRecord::Base
attr_accessible :price
validates_presence_of :price
validates_numericality_of :price, :message => "has to be a number"
belongs_to :user
belongs_to :product
end
class user < ActiveRecord::Base
# devise authentication here
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
has_many :user_products, :dependent => :destroy
has_many :products, :through => :user_products
end