在Rails中渲染JSON时语句无效

时间:2018-10-10 12:10:33

标签: ruby-on-rails ruby-on-rails-5 rails-api ruby-on-rails-5.2 railsapps

以下我的代码段用于呈现json

def show
   @product = Product.find(params[:id])
      render json: @product.to_json(:include => { :items => { :only => [:id, 
:description] }}) 
end

虽然渲染json具有许多属性模型,但我得到的无效语句如下:

(Mysql2::Error: Unknown column 'items.product_id' in 'where clause': SELECT `items`.* FROM `items` WHERE `items`.`product_id` = 1):

虽然我有一列称为product_id的外键而不是product_id。我需要在不更改数据库中列名称的情况下将语句作为products_id抛出。

1 个答案:

答案 0 :(得分:1)

在您的产品模型中,您应该有类似has_many :items的名称。此行创建一个与默认外键product_id的关联。要更改外键,您需要将此行更改为has_many :items, foreign_key: :products_id