для моего фрагмента ниже для рендеринга 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
.
Поскольку мы размышляем, не видя фактического кода модели - вы уверены, что это все? А как насчет ассоциации belongs_to
в модели Item
?
Совершенно уверен, что это решит проблему с неизвестным столбцом и позволит OP отображать этот JSON. belongs_to
- другая проблема.
Пожалуйста, покажите свои модели
Product
иItem
.