我刚刚开始在Rails中编码,以便创建一个我已经碰壁的API。我正在尝试使用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
端
用户模型只有一个验证validates :name, presence: true
并且一直失败,因为显然params总是为空。要测试我在Chrome上使用Postman - REST客户端的电话,我点击的网址是http://localhost:3000/users
。我不确定我做错了什么。与表单和http相同的设置工作正常。
我尝试以不同的方式格式化JSON对象,但没有任何作用。到目前为止,我已经使用过:
答案 0 :(得分: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