Ruby on rails 3 使用json在rails api中创建操作
我正在尝试在rails控制器中构建一个简单的操作,它将充当API 在本例中,我尝试在客户端发布json编码字符串时运行create 现在我让它像这样工作:Ruby on rails 3 使用json在rails api中创建操作,ruby-on-rails-3,json,api,Ruby On Rails 3,Json,Api,我正在尝试在rails控制器中构建一个简单的操作,它将充当API 在本例中,我尝试在客户端发布json编码字符串时运行create 现在我让它像这样工作: def create @user = User.new.from_json(params[:user]) respond_to do |format| if @user.save format.json { render json: @user, status: :created, location: @user
def create
@user = User.new.from_json(params[:user])
respond_to do |format|
if @user.save
format.json { render json: @user, status: :created, location: @user }
else
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
{"email":"email.address@gmail.com","password":"password"}
我不喜欢依赖to_json调用来创建。现在我只响应json负载,但如果我们决定将其扩展到xml,这段代码就会中断
有没有更干净的方法从json格式发布的数据创建新用户
我尝试将params[:user](这是json字符串)传递给user.new,但出现了错误
作为参考,我的json如下所示:
def create
@user = User.new.from_json(params[:user])
respond_to do |format|
if @user.save
format.json { render json: @user, status: :created, location: @user }
else
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
{"email":"email.address@gmail.com","password":"password"}
不确定,但您可能希望执行
format.json
块中的from_json(params[:user])
部分
def create
@user = User.new
respond_to do |format|
format.json do
if @user.from_json(params[:user]).save
#render user
else
#render errors
end
end
format.xml do
if @user.from_xml(params[:user]).save
else
end
end
end
end
这样,当您收到xml时,它就不会中断