2009-04-02 17 views
5

Cuando agrego un nuevo "producto" usando mi andamio crear carriles de aplicación, la siguiente línea agrega correctamente un nuevo productoparámetros POST acceso

@product = Product.new(params[:product]) 

Cuando intento agregar un nuevo producto utilizando el siguiente URL (tratando PARA PUBLICAR datos desde un programa Java).

http://localhost:3000/products?serial=555&value=111 

El producto no se crea, sin embargo, puedo acceder a los valores "en serie" y "valor" de esta manera:

@product = Product.new 
@product.serial=params[:serial] 
@product.value=params[:value] 
@product.save 

para confundirme aún más, si uso la aplicación rieles para agregar una nuevo producto, las variables params[:serial] y params[:value] están vacías.

¿Puede alguien señalarme en la dirección correcta?

Gracias

Respuesta

9

El método Model.new toma un hash.

params[:product] en realidad contiene algo así como {:serial => 555, :value => 111}

la URL que se desea utilizar es:

http://localhost:3000/products?product[serial]=555&product[value]=111 

(Asegúrese de que está hecho usando POST)

Si desea mantener su esquema de url actual que tendría que utilizar:

@product = Product.new({:serial => params[:serial], :value => params[:value]}) 

También puede determinar exactamente lo que está disponible dentro de parametros mediante la impresión de que fuera a la consola usando:

p params 

Buena suerte!

+0

Gracias, trabajado perfecto – brodie31k

Cuestiones relacionadas