Я пытаюсь написать API-код, который использует JSON от контроллера.Я смог успешно получить желаемые результаты локально, но когда я нажимаю на Heroku, части моего JSON отображаются неправильно.
В контексте я пытаюсь создать вложенный JSON с информацией о еде (имя, id и т. д.) и URL-адреса фотографий.Локально URL-адреса фотографий отображаются в формате JSON.Однако на Heroku URL-адреса фотографий отображаются как нулевые.На Heroku я также протестировал только рендеринг URL-адреса JSON в одиночку, и он правильно получает URL-адреса.
Если вы знаете, почему он отображается правильно, а не на Heroku, пожалуйста, дайте мне знать.Спасибо
Я создаю свой JSON следующим образом:
def api
@meals = Meal.all
@urls = Hash.new
@return_val = Array.new
@sorted_meals = Meal.select('meals.name as meal_name, meals.id as meal_id,
COALESCE(sum(meal_ratings.rating), 0) as meal_rating,
restaurants.id as restaurant_id, restaurants.name as restaurant_name').
joins('LEFT JOIN meal_ratings ON meals.id = meal_ratings.meal_id
LEFT JOIN restaurants ON restaurants.id = meals.restaurant_id').
group('meals.name, meals.id, restaurants.id, restaurants.name').
order('meal_rating DESC').all
@meals.each do |meal|
unless meal.meal_photos.empty?
@urls[meal.id] = {"thumb" => meal.meal_photos[0].photo.url(:thumb), "profile" => meal.meal_photos[0].photo.url(:profile)}
end
end
@sorted_meals.each do |meal|
@return_val.push("id" => meal.meal_id, "name" => meal.meal_name,
"rating" => meal.meal_rating, "restaurant" => meal.restaurant_name,
"restaurant_id" => meal.restaurant_id, "urls" => @urls[meal.meal_id])
end
respond_to do |format|
format.html # show.html.erb
format.json { render json: @return_val } # render json: @url render json: @meals
end
end