Ruby on rails Rails通过html响应restful输入
我们有一个Rails应用程序,通过Restful界面添加工作订单 这是控制器代码:Ruby on rails Rails通过html响应restful输入,ruby-on-rails,rest,Ruby On Rails,Rest,我们有一个Rails应用程序,通过Restful界面添加工作订单 这是控制器代码: # POST /workorders # POST /workorders.json def create @workorder = Workorder.new(params[:workorder]) respond_to do |format| if @workorder.save format.html { redirect_to @workorder, notice: 'Wor
# POST /workorders
# POST /workorders.json
def create
@workorder = Workorder.new(params[:workorder])
respond_to do |format|
if @workorder.save
format.html { redirect_to @workorder, notice: 'Workorder was successfully created.' }
format.json { render json: @workorder, status: :created, location: @workorder }
else
format.html { render action: "new" }
format.json { render json: @workorder.errors, status: :unprocessable_entity }
end
end
end
添加workorder时,响应来自以下代码行:
format.html { redirect_to @workorder, notice: 'Workorder was successfully created.' }
其他应用程序得到的回报是:
<html><body>You are being <a href="http://ndeavor.ameipro.com/workorders/50">redirected</a>.</body></html>
response.headers['ETag']=@workorder.id
可能有效
但更好的方法是发送json并让客户机解析,而不是试图从HTML中提取数据
查看for Mule,您应该能够如下设置accept标头:
props.put("Accept", "application/json");
rails应用程序将使用format.json
块对其进行响应
或者,您可以通过从respond\u to
块中调用render:json
使其始终使用json进行响应:
def create
@workorder = Workorder.new(params[:workorder])
if @workorder.save
render json: @workorder, status: :created, location: @workorder
else
render json: @workorder.errors, status: :unprocessable_entity
end
end
如何发送json?客户端应用程序正在发送html作为输入,以创建新的工作订单。有可能有html输入,但有json响应吗?我在
format.html{redirect_到@workorder,response.headers['ETag']=@workorder.id时得到了>错误的参数数(3对2),注意:“workorder已成功创建”。}
我将控制器更改为'format.html{redirect_到@type,response.headers['ETag']=@type.id}`。我在响应标题中获取ETag。但是,它的价值是ETag:“fbedd2e864b1fd43c6ec4da7b51e0e47”你的“其他应用”在做什么?它的代码是什么,用例是什么?我们正在使用Mule将数据从资产管理系统移动到新的Rails应用程序。对于一些测试,我们使用Wiztools Restclient。
def create
@workorder = Workorder.new(params[:workorder])
if @workorder.save
render json: @workorder, status: :created, location: @workorder
else
render json: @workorder.errors, status: :unprocessable_entity
end
end