通过user_id Rails current_user关联

时间:2016-03-01 22:53:13

标签: ruby-on-rails ruby-on-rails-4 devise rails-api

我有三种型号:用户,产品和订单。协会如下:

用户(卖方)有许多产品

用户(买方)有许多订单

订单有一个产品

订单有一个用户(买方)

产品有一个用户(卖方)

产品有一个订单

现在,在产品模型中,有一个与用户的关联:

belongs_to :seller, class_name: "User", foreign_key: "seller_id"
product_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 个答案:

答案 0 :(得分:1)

:foreign_key中的Product.belongs_to选项实际上需要在User.has_many上结束,即在User中:

has_many :products, foreign_key: :seller_id