2016-03-01 3 views
1

У меня есть три модели: пользователь, продукт и заказ. Ассоциации являются:Rails current_user association by user_id

пользователя (продавец) имеет много продуктов

пользователя (покупатель) имеет множество заказов

Ордер имеет один продукт

Ордер имеет один пользователь (покупатель)

продукт имеет один покупатель (продавец)

продукт имеет один орден

Теперь в модели продукта есть объединение для пользователя:

belongs_to :seller, class_name: "User", foreign_key: "seller_id" 

в products_controller для добавления нового продукта, связывающего его пользователь:

def create 
    @product = current_user.products.create(product_params) 
    .... 

В базе данных внешний ключ имеет также был переименован в «seller_id». Когда линия current_user.products называется ответ не может

ActiveRecord::UnknownAttributeError (unknown attribute 'user_id' for Product.): 
    app/controllers/products_controller.rb:23:in `create' 

Я не уверен, как изменить CURRENT_USER к продукции ассоциации использовать этот ключ seller_id. Любая помощь будет высоко оценена, спасибо.

ответ

1

:foreign_key вариант вы имеете в вашем Product.belongs_to на самом деле должен быть более на User.has_many, то есть, в User:.

has_many :products, foreign_key: :seller_id 
+1

, что сделал трюк, спасибо! – user1087943

+0

Добро пожаловать. – smathy