Я создаю API для рельсов, и мне нужно отправить всю страну как JSON
, используя AMS
. Я могу получить страны, но не могу отправить их как JSON
.
Я получаю сообщение об ошибке: undefined method [] for nil class
def index
countries = Country.all
render json: countries, serializer: CountrySerializer
end
class CountrySerializer < ActiveModel::Serializer
attributes(:name)
end
Я ожидаю, что ответ JSON
будет массивом вроде
[
England,
Netherland
]
Я надеялся, что смогу использовать сериализаторы, чтобы переводить имена на разные языки.
🤔 А знаете ли вы, что...
Rails включает в себя генераторы кода, которые позволяют быстро создавать структуру приложения и его компоненты.
Согласно вашему комментарию, сериализаторы настроены для работы с моделями Rails, а ваши данные поступают из гема countries
.
Если все, что вам нужно, это атрибут имени, который вы можете сделать:
def index
countries = Country.all
render json: { countries: ISO3166::Country.all.map(&:name) }
end