在 Rails 中呈现 json 时语句无效

Statement invalid while rendering json in Rails

我下面的片段用于渲染 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):

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

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