访问POST参数

时间:2009-04-02 02:09:54

标签: ruby-on-rails

当我使用我的脚手架创建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]变量为空。

有人可以指出我正确的方向。

由于

1 个答案:

答案 0 :(得分:11)

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
祝你好运!