Ниже приведен запрос, который я создаю, затем выводим json на основе результатов.Однако поля SELECT с одинаковыми именами перезаписываются, например, food.name и food.id перезаписываются restaurant.name и restaurant.id.
Я опробовал строку запроса в SQLite, и он возвращает все столбцы, которые мне нужно найти, но не выводится должным образом как вывод JSON.Любая помощь будет оценена.Спасибо
Вот мой код рельсов в моем контроллере
@meals = Meal.find(:all,
:select => 'meals.name, meals.id, sum(meal_ratings.rating), restaurants.name',
:joins => 'LEFT JOIN meal_ratings, restaurants ON meals.id = meal_ratings.meal_id AND restaurants.id = meals.restaurant_id',
:group => 'meal_ratings.meal_id ',
:order => 'meal_ratings.rating DESC')
respond_to do |format|
format.html # show.html.erb
format.json { render json: @meals } #
end
Вот результаты:
[{"id":1,"name":"Parkside","sum(meal_ratings.rating)":2},
{"id":2,"name":"Parkside","sum(meal_ratings.rating)":1},
{"id":3,"name":"EVK","sum(meal_ratings.rating)":-1}]
Вот идентичная команда SQL:
SELECT meals.name, meals.id, sum(meal_ratings.rating), restaurants.name
FROM meals
LEFT JOIN meal_ratings, restaurants ON meals.id = meal_ratings.meal_id AND restaurants.id = meals.restaurant_id
GROUP BY meal_ratings.meal_id
ORDER BY meal_ratings.rating DESC
Вот результаты SQL
name|id|sum(meal_ratings.rating)|name
Pizza|1|2|Parkside
Pork Chops|2|1|Parkside
Spaghetti|3|-1|EVK