3

APIを作成するためにRailsでコーディングを始めたばかりで、すでに壁にぶつかっています。POST リクエストを使用してユーザーを作成しようとしています。scaffold コマンドを使用して作成されたユーザー コントローラーは次のとおりです。

def create
@user = User.new(params[:user])

logger.info(@user.to_json)

if @user.save
 render json: @user, status: :created, location: @user

else
  render json: @user.errors, status: :unprocessable_entity
end

終わり

ユーザーモデルには検証が1つしかなくvalidates :name, presence: true、明らかにparamsが常に空であるため、失敗し続けます。Postman - Chrome で REST クライアントを使用している呼び出しをテストするために、ヒットしている URL はhttp://localhost:3000/users. 私がひどく間違っているのは何なのかわかりません。フォームと http を使用した同じセットアップは正常に機能します。

JSON オブジェクトをさまざまな方法でフォーマットしようとしましたが、何も機能しません。これまで私は使用してきました:

  1. {"ユーザー":{"名前":"テスト"}}
  2. {{"名前":"テスト"}}
4

1 に答える 1

1

通行を許さないからです。Rails 4 の導入strong parameters

隣接するメソッドを使用して、それを呼び出すことができます。

def create
  @user = User.new(user_params)

  logger.info(@user.to_json)

  if @user.save
    render json: @user, status: :created, location: @user
  else
    render json: @user.errors, status: :unprocessable_entity
  end
end

...
private
def user_params
  params.require(:user).permit(:field1, :field2)
end
于 2014-03-17T21:01:40.253 に答える