2016-02-20 3 views
1

Я разработчик .NET и вам нужно работать с API, встроенным в Ruby. Ниже приведен код API. Может кто-нибудь помочь мне в получении конечной точки.RAILS API Endpoint

class Api::SessionsController < ApplicationController 
    respond_to :json 
    skip_before_filter :verify_authenticity_token 

    before_filter :protect_with_api_key 

    def update 
    status = true 
    participant_ids = [] 
    unless params[:participants].blank? 
     params[:participants].each do |participant_data| 
     participant = Participant.where(participant_id:         participant_data['participant_id']).first 
     unless participant.present? 
     status = false 
     participant_ids << participant_data['participant_id'] 
     else 
     activity_records = participant_data['cumulative_time']['activity_records'] 
     participant_data['cumulative_time']['activity_records'] = [] if activity_records.nil? 
     participant.participant_sessions.new(participant_data['cumulative_time']) 
     participant.save! 
     end 
    end 
    end 

    if status 
    render :json => {status: "OK"} 
    else 
    render :json => {error: "No participant with id # {participant_ids.join(',')}"}, :status => 422 
     end 
    end 

end 

Я пытался работать с следующим образом/API/сессий/ Передайте нужный ключ передать параметр участника с PUT запрос, как показано ниже

{"participants":[{"first_name":"Demo", "last_name":"User",  "email":"[email protected]", "password":"RubyNewBie","postal_code":"160055", "coordinator_name":"RubyNewBie", "coordinator_email":"[email protected]", "coordinator_phone":""}]} 

Пожалуйста, руководство меня.

Спасибо и наилучшими пожеланиями

+0

Вам необходимо передать участника_json в json. – Walerian

+0

@Walerian Спасибо за быстрый ответ. Я попробовал следующее {»participant_id„:“1" }, чтобы пройти как JSON в запросе, поставленного на URL, но получил 404 –

ответ

1

По умолчанию, обновление маршрутов действий по /api/sessions/:id, так что вы должны сделать запрос к этой ссылке. Также убедитесь, что у вас есть свой маршрут для сессии учреждать в routes.rb

Edit:

namespace :api do 
    resources :participants do 
    resources :sessions 
    end 
end 

Если это выглядит так, то вы используете вложенные маршрутизации. Проверить:

http://guides.rubyonrails.org/routing.html#nested-resources

Вы должны будете использовать URL /api/participants/:participant_id/sessions/:session_id под этой установкой.

+0

мой routes.rb выглядит что-то вроде ' имен: API делать ресурсов: участники делают ресурсов: сессии конец конец' –

+0

@ManojSethi обновленный ответ. посмотрите, помогает ли это. – Harfangk

+0

Спасибо, сработало. Большое спасибо. –

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