2015-06-10 4 views
0

У меня есть команда, чтобы отправить до рельсов URL-адрес некоторых JSON:Grab JSON послал к рельсам

curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d ' {"user":{"first_name":"firstname","last_name":"lastname","email":"[email protected]","password":"app123","password_confirmation":"app123"}}' http://localhost:3000/maps 

И у меня есть способ создать в моем контроллере:

def create 
    #@map = Map.new(map_params) 
    #@json = ActiveSupport::JSON.decode(open('jsonfeed').read) 
    @result = JSON.parse string #parse json, but where to get that json first 
    respond_to do |format| 
     if @map.save 
     format.json { 
      #render :show, status: :created, location: @map 
     } 
     else 
     format.json { render json: @map.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

Как я получить JSON отправлено на рельсы. I thinsk JSON.parse будет анализировать мои json и возвращать параметры hash, но сначала, как получить этот json.

ответ

1

добавьте следующий код в свой контроллер и попробуйте.

before_action :parse_json_data_to_params, except: [ # Put Your Get Actions Names Here otherwise it will raise error for get requests ] 

def parse_json_data_to_params 
    params.merge!(ActiveSupport::JSON.decode(request.raw_post)) 
end