3

我刚开始在 Rails 中编码以创建 API,但我已经碰壁了。我正在尝试使用 POST 请求创建用户。这是我的用户控制器,它是使用脚手架命令创建的:

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

结尾

用户模型只有一个验证validates :name, presence: true并且一直失败,因为显然参数总是空的。为了测试我在 Chrome 上使用 Postman - REST Client 的调用,我点击的 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 回答