2016-01-10 2 views
0

поэтому у меня есть таблица, полная событий. мой вызов контроллера выглядит следующим образом:превратить базу данных в разобранный json в рельсах

@gig = Gigtable.where(eventurl: (params[:gigurl])).all 
@gigjson = @gig.to_json 

Im не уверен, что im делает это правильно. У меня есть вызов ajax. Я хочу, чтобы json (который должен быть каждой строкой в ​​своем собственном наборе {}, надеюсь, чтобы быть втянутым в контроллер ajax, только если eventid имеет URL-адрес от event table, называемый gigurl (его еще не пропустили. Im not sure как сделать что либо).

@gigjson проходит всю базу данных обратно в JSON (проверено с byebug).

в принципе мне нужно gigurl быть переданы с точки зрения к контроллеру. (все остальное работает, что Кстати, мой другой стол имеет идентификатор URL-адреса, переданного в ajax, как этот

'' + link + 'data'

я хотел бы иметь это так-то, как это было achieveible

urlcall будет (в AJAX)

` '' + gigjson + 'метода контроллера здесь?

вот весь код, который у меня есть до сих пор. Ничего в маршрутах, ничего в ajax просто стандартный вызов ajax.

ответ

0

В основном вам нужно:

  1. Определение маршрута;
  2. Извлечь данные в JSON с контроллера.

На шаге 1, предполагается, что ваш вызов AJAX использует GET, вы можете добавить это к вашему routes.rb файл:

get 'gigjson/:gigurl', to: 'your_controller#your_action', defaults: { format: 'json' } 

Я определил JSON как формат по умолчанию, чтобы сделать вещи проще, так что вы не необходимо изменить свой JS-вызов. На шаге 2, в контроллере, вы можете переписать свои действия следующим образом (я удалил не являющийся переменный экземпляр полезного):

render :json, Gigtable.where(eventurl: (params[:gigurl])) 

Вам не нужно добавлять .all, вы уже указать пункт where.

На этом этапе вы можете использовать URL http://your_server.com/gigjson/GIGURL, заменяя GIGURL необходимым параметром.

+0

Привет, taglia, Спасибо за это, GIGURL, как это пройдет? Это одна из вещей, которую я смутил. Является ли это частью ajax, где url-вызов будет ''/gigjson '+ GIGURL', поскольку он изменяется в зависимости от страниц на –

+0

. Я не понимаю ваш вопрос. GIGURL будет передан в качестве параметра в запросе. Поэтому, если вы вызываете «http://server.com/gigjson/whatever123», 'params [: gigurl]' будет равно «any123». Если вы предпочитаете, вы также можете удалить «: gigurl» с маршрута и вызвать URL-адрес «gigjson? Gigurl = whatever123». Никаких изменений в контроллере. – taglia

Смежные вопросы