当我使用我的脚手架创建rails应用程序添加新的“产品”时,以下行正确添加了新产品
@product = Product.new(params[:product])
当我尝试使用以下URL添加新产品时(尝试从java程序中发布数据).
http://localhost:3000/products?serial=555&value=111
产品未创建,但我可以访问“serial”和“value”值,如下所示:
@product = Product.new @product.serial=params[:serial] @product.value=params[:value] @product.save
为了进一步混淆我,如果我使用rails应用程序添加新产品,则params [:serial]和params [:value]变量为空.
有人可以指出我正确的方向.
谢谢
解决方法
Model.new方法采用哈希.
params [:product]实际上包含类似{:serial => 555,:value => 111}
您想要使用的网址是:
http://localhost:3000/products?product[serial]=555&product[value]=111
(确保您确实使用POST)
如果您想保留当前的网址方案,则必须使用:
@product = Product.new({:serial => params[:serial],:value => params[:value]})
您还可以使用以下命令将其打印到控制台,以确定params内部的可用内容:
p params
祝好运!