Ruby on rails 如何编写一个方法来获取JSON数据并对其进行解析,然后保存到数据库中
我试图像这样将数据库中的数据呈现到_json,效果很好Ruby on rails 如何编写一个方法来获取JSON数据并对其进行解析,然后保存到数据库中,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我试图像这样将数据库中的数据呈现到_json,效果很好 def getOrderDetails #To get the details of a particular guest_order and its batches and items @guest_order = GuestOrder.find(params[:id]) render json: @guest_order.to_json(except: [:created_at, :updated_at],
def getOrderDetails
#To get the details of a particular guest_order and its batches and items
@guest_order = GuestOrder.find(params[:id])
render json: @guest_order.to_json(except: [:created_at, :updated_at],
include: {order_batches: {except: [:guest_order_id, :created_at, :updated_at],
include: {order_items: {except: [:order_batch_id, :created_at, :updated_at] } }
}
}
)
end
但是,我不知道如何编写一个方法来获取json数据并对其进行解析,然后更新到数据库中
如果我像这样从手机发送json数据
Parameters:{"updateStatus" => "{\"itemId\":1,\"status\":\"accepted\",\"statusTime\":\"2012-04-25 18:28:30\",\"batchId\":5}"}
# == Schema Information
#
# Table name: order_items
#
# id :integer not null, primary key
# quantity :integer
# accepted :datetime
# cooking :datetime
# ready :datetime
# delivered :datetime
# cancelled :datetime
# order_batch_id :integer
# dish_id :integer
# created_at :datetime
# updated_at :datetime
#
这里的状态是接受、烹饪、准备、交付、取消。statusTime是特定状态的值
如何获取这些数据并解析,然后更新到数据库中的下表中
def updateStatus
# How to parse json and save in database
end
表模式如下所示
Parameters:{"updateStatus" => "{\"itemId\":1,\"status\":\"accepted\",\"statusTime\":\"2012-04-25 18:28:30\",\"batchId\":5}"}
# == Schema Information
#
# Table name: order_items
#
# id :integer not null, primary key
# quantity :integer
# accepted :datetime
# cooking :datetime
# ready :datetime
# delivered :datetime
# cancelled :datetime
# order_batch_id :integer
# dish_id :integer
# created_at :datetime
# updated_at :datetime
#
提前感谢。Rails将根据请求中的查询参数创建一个哈希 如果您以正确的格式发出请求,Rails参数散列将包含以下数据
puts params.inspect
=>
{ "order_items" => { "id" => 9, "cooking" => "2012-03-11 15:16:15.0000" }, :action => "action_name", etc }
实际上,您根本不需要解析json
def updateStatus
@order_item = OrderItem.create(params[:order_items])
respond_to do |format|
format.json { render @order_item }
end
end
Rails将根据请求中的查询参数创建哈希 如果您以正确的格式发出请求,Rails参数散列将包含以下数据
puts params.inspect
=>
{ "order_items" => { "id" => 9, "cooking" => "2012-03-11 15:16:15.0000" }, :action => "action_name", etc }
实际上,您根本不需要解析json
def updateStatus
@order_item = OrderItem.create(params[:order_items])
respond_to do |format|
format.json { render @order_item }
end
end
尝试:
安装json gem
data = JSON.parse(params[:data])
new_record = OrderItem.new(data[:order_items])
new_record.save
尝试:
安装json gem
data = JSON.parse(params[:data])
new_record = OrderItem.new(data[:order_items])
new_record.save