2016-12-26 10 views
0

私は郵便配達員からリクエストを出しています。シェルターのパラメータを含むようにフォーマットしても、シェルターのパラメータは空になり続けます。データを正しく形成する。私が何かを欠けているなら、私を助けてください。ActionController :: ParameterMissing(paramが見つからないか、値が空です:シェルター):

class Api::V1::SheltersController < ApplicationController 

    def index 
    @shelters = Shelter.all.order(:id).reverse 
    respond_with @shelters 
    end 

    def show 
    @shelter = Shelter.find(params[:id]) 
    respond_with @shelter 
    end 

    def create 
    @shelter = Shelter.new(shelter_params) 
    if @shelter.save 
     render json: @shelter, status: 201 
    else 
     render json: { errors: @shelter.errors.full_messages }, status: 422 
    end 
    end 


    private 

    def shelter_params 
     params.require(:shelter).permit(:name, :address, :phone, :beds) 
    end 

end 

私はポストマン

shelter : { 
    name : "Pee's Shelter", 
    address : "Pee's Address", 
    phone : "(236)817-4853", 
    beds : 5 
} 

を通じて、私はレールのページ

パラメータ見ている要求情報送信していたデータ:

{ "避難所:{\ nと\ \ n \ t \ tname:\ "ピースのシェルター\"、\ n \ t \ t住所:\ "ピースの住所\"、\ n \ t \ tphone:\ "(236)817-4853 \"、\ n \ t \ tbeds: 5 \ n} \ n "=> nil、"サブドメイン "=>" api "、" format "=>:json}

+0

郵便配達員にどのようにパラメータを送信していますか?未処理のフォームデータまたはx-www-form-urlencoded? – mokayode

+0

Rawとして送信 –

+0

POSTを開始しました/シェルター:127.0.0.1:2016-12-26 08:14:42 -0800 Api :: V1 :: SheltersController#create as JSON {shelter :\ n \ t \ tname:\ "ピースのシェルター\"、\ n \ t \ t住所:\ "ピースの住所\"、\ n \ t \ tphone:\ "(236)817-4853 \"、\ n \ 0 "=> nil、" subdomain "=>" api "} 1msで400回の不正なリクエストが完了しました。(ActiveRecord:0.0ms) –

答えて

1

あなたのキーは、以下のように設定されている:

"shelter : {\n\t\tname : \"Pee's Shelter\",\n\t\taddress : \"Pee's Address\",\n\t\tphone : \"(236)817-4853\",\n\t\tbeds : 5\n} \n" 

そして、そのキーのあなたの値は=> nil

ある文字列の前に"を削除します。

より正確には、シェルターとすべてのキーを1つの文字列として作成しないでください。

+0

私もそれを持っていませんでしたJSON(アプリケーション/ json)に設定していただきありがとうございます –

関連する問題