我从我的应用程序中获取以下格式的 JSON
{"list":[{"orderno":"02201308231133","itemno":"w01","name":"t01","amount":"120","status":"done"},{"orderno":"02201308231133","itemno":"w02","name":"t02","amount":"120","status":"done"},{"orderno":"02201308231133","itemno":"w03","name":"t03,"amount":"120","status":"done""}]}
现在我需要从上面的 JSON 中执行 2 个任务:首先在列表表中添加上面的行,第二个:在上述情况下从 orderno ie02 中提取前 2 位数字并使用状态更新另一个表(或调用另一个控制器)(完成)提取值 (02)。
我能够完成第一项任务。相同的控制器代码是:
def create
lists = params[:list].collect{|list_attributes| List.new(list_attributes)}
valid,not_valid = lists.partition{|list| list.valid?}
if not_valid.blank?
lists.map(&:save)
@lists = lists
format.html { redirect_to @list, notice: 'List was successfully created.' }
format.json { render json: @list, status: :created, location: @list }
else
format.html { render action: "new" }
format.json { render json: @list.errors, status: :unprocessable_entity }
end
end
上述方法在 DB 表中插入行。现在我无法弄清楚如何在列表控制器中调用 create 方法之前解析 JSON 以提取值。一旦我有了值,我需要调用两个表来更新。请指教。谢谢