2013-09-04 1 views
3

Мне нужно вызвать пользовательский метод в моем контроллере из моего приложения для Android. У меня есть табличное имя «списки», в котором есть несколько столбцов, один из которых является «tableno». Мне нужно вызвать метод контроллера, который будет извлекать все строки из таблицы списков в БД для переданного номера таблицы и возвращать его как JSON. В моем приложении я буду читать JSON. Я определил метод в моем контроллере списков, как показано ниже:Пользовательский метод в контроллере Rails

def tableOrder 
    @list = List.where(:tableno => params[:tableno]) 

    respond_to do |format| 
     format.json { render json: @list } 
    end 
end 

В моих маршрутах файл я дал

resources :lists do 
    member do 
    get 'tableOrder' 
    end 
end 

и URL я использую, чтобы выполнить из моего Android App является lists/tableOrder с get методом. Параметры, которые я отправляю из своего приложения для Android, - это JSONObject: jsonObject.put("tableno", tableNo);. tableno - это фактическое имя столбца в моей таблице списков.

Проблема заключается в том, что он не выполняет запрос и не пропускает ошибку шаблона. Я проверил сервер и даже не прочитал параметры, которые я отправил. Я новичок в рельсах и впервые пишу такую ​​вещь, поэтому не уверен, что я что-то упустил. Пожалуйста, порекомендуйте. Благодарю.

+0

Вы уверены, что хотите маршрут участника? Это определяет маршрут для 'lists /: id/tableOrder', но вы говорите, что хотите' lists/tableOrder'. Что делает это действие? В вашем действии вам, похоже, нужен один список. Я запутался. Пожалуйста, объясни. –

+0

Можете ли вы рассказать мне, что он показывает отсутствующий шаблон, пока вы нажимаете URL-адрес http: // localhost: 3000/lists/tableOrder? –

+0

@RyanBigg да, это также неверный путь определения маршрута, который должен быть 'collection' вместо' member' –

ответ

1

Попытка ударить lists/tableOrder.json вместо этого. Формат по умолчанию - .html, и поэтому он жалуется, что не может найти шаблон.

+0

Спасибо, Райан. Это сработало. Фактически он выполнял запрос в моем методе, но не смог прочитать отправленный JSONObject. Обработка списком ListController # tableOrder as JSON List Load (60.0ms) SELECT 'lists'. * FROM' lists' WHERE 'lists'.'tableno' IS NULL – Gaurav

+0

Как вы отправляли этот объект? Почему вы отправляете объект, а не только параметр запроса? (т. е. '/lists/tableOrder.json? tableno = 1') –

+0

Спасибо Райан. Я делал это неправильно. Его работа, как вы предложили. Я пробовал, как работал мой предыдущий запрос. Там JSONObject работал нормально в одном из предыдущих случаев. Но в этом его работа, как вы предполагали. Еще раз спасибо за все. – Gaurav

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

  • Нет связанных вопросов^_^