У меня есть следующий код, который отвечает на GET /something.json
:
def index
@something = Something.all
respond_to do |format|
format.json { render json: @something }
end
end
Это запускает SELECT * FROM something
в базе данных, форматирует результат в JSON и отвечает им.
Запрос может запрашивать другое поле через параметр запроса, который находится в другой таблице, чем something
. Мне удалось получить нужное поле, выполнив это:
def index
@something = Something.all
if params[:get_field_from_some_other_table] == "true"
@something.each do |i|
some_other_table = SomeOtherTable.find(i.some_other_table_id)
the_field_i_want = some_other_table.the_field
end
end
respond_to do |format|
format.json { render json: @something }
end
end
Но я не нашел способа добавить поле в строку JSON. Как я могу это сделать? Или есть лучший способ извлечь поле с содержимым таблицы something
через JOIN
или что-то подобное?