tutorial rails que ejemplos descargar curso caracteristicas ruby-on-rails ruby

ruby-on-rails - que - ruby on rails tutorial



¿Rieles params explicados? (5)

Básicamente, los parámetros son datos especificados por el usuario a la aplicación de rieles.

Cuando publica un formulario, generalmente lo hace con la solicitud POST en lugar de la solicitud GET. Puede pensar que las solicitudes de rieles normales son solicitudes GET, cuando navega por el sitio, si le ayuda.

Cuando envía un formulario, el control se devuelve a la aplicación. ¿Cómo se obtienen los valores que ha enviado al formulario? params es como

Sobre tu código. @vote = Vote.new params[:vote] crea un nuevo Vote a la base de datos usando datos de params [: vote]. Dado que su formulario de usuario fue nombrado bajo nombre: voto, todos los datos de este se encuentran en este: campo de voto del hash.

Las siguientes dos líneas se usan para obtener el artículo y el usuario de uid ha enviado al formulario.

@extant = Vote.find(:last, :conditions => ["item_id = ? AND user_id = ?", item, uid])

encuentra el último o último inserto, vota desde la base de datos con las condiciones item_id = item y user_id = uid.

Las siguientes líneas toman la última hora de votación y la hora actual.

¿Alguien podría explicar los params en el controlador de Rails: de dónde vienen y a qué se refieren?

def create @vote = Vote.new(params[:vote]) item = params[:vote][:item_id] uid = params[:vote][:user_id] @extant = Vote.find(:last, :conditions => ["item_id = ? AND user_id = ?", item, uid]) last_vote_time = @extant.created_at unless @extant.blank? curr_time = Time.now end

Me gustaría poder leer este código línea por línea y entender lo que está pasando.


Como han señalado otros, los valores de params pueden provenir de la cadena de consulta de una solicitud GET, o de los datos del formulario de una solicitud POST, pero también hay un tercer lugar desde el que pueden provenir: la ruta de la URL.

Como ya sabrá, Rails utiliza algo que se llama rutas para dirigir las solicitudes a sus acciones de controlador correspondientes. Estas rutas pueden contener segmentos que se extraen de la URL y se ponen en params . Por ejemplo, si tienes una ruta como esta:

match ''products/:id'', ...

Luego, una solicitud a una URL como http://example.com/products/42 establecerá los params[:id] en 42 .


En el lado de Rails, params es un método que devuelve un objeto ActionController::Parameters . Consulte https://.com/a/44070358/5462485


Los parámetros provienen del navegador del usuario cuando solicitan la página. Para una solicitud HTTP GET, que es la más común, los parámetros están codificados en la url. Por ejemplo, si el navegador de un usuario solicita

http://www.example.com/?foo=1&boo=octopus

entonces params[:foo] sería "1" y params[:boo] sería "octopus".

En HTTP / HTML, los parámetros son en realidad solo una serie de pares clave-valor donde la clave y el valor son cadenas, pero Ruby on Rails tiene una sintaxis especial para hacer que los parámetros sean un hash con hashes dentro. Por ejemplo, si el navegador del usuario solicita

http://www.example.com/?vote[item_id]=1&vote[user_id]=2

entonces params[:vote] sería un hash, params[:vote][:item_id] sería "1" y params[:vote][:user_id] sería "2".

Los parámetros de Ruby on Rails son el equivalente de la matriz $ _REQUEST en PHP .


Parámetros contiene los siguientes tres grupos de parámetros:

  1. Parámetros suministrados por el usuario
    • GET ( configurará los parámetros [: param1] y params [: param2])
    • POST (por ejemplo, JSON, XML se analizará automáticamente y se almacenará en parámetros)
    • Nota: De forma predeterminada, Rails duplica los parámetros provistos por el usuario y los almacena en params [: user] si en UsersController, se puede cambiar con la configuración wrap_parameters
  2. Parámetros de enrutamiento
    • match ''/user/:id'' en route.rb establecerá los parámetros [: id]
  3. Parámetros por defecto
    • params[:controller] y params[:action] siempre está disponible y contiene el controlador y la acción actuales