Envía parámetros del controlador al modelo con validación

Soy un novato de Rails y me ha confundido el envío de parámetros del controlador al modelo. Di, mi modelo tiene campos user_id_from y user_id_to, pero al controlador vinieron como to y from (para simplificar el lado del cliente).

Entonces, en mi controlador debería modificar los campos para el modelo con un código tan feo:

UserRelationship.crate (: to => params [: user_id_to],: from => params [: user_id_from])

OR

esta modificación podría hacerse de otra manera?

preguntado el 16 de mayo de 11 a las 18:05

1 Respuestas

Por lo general, lo más fácil de hacer es cambiar el controlador o el formulario para enviarlos como params [: user_id_to] y params [: user_id_from] si es posible.

Pero otra forma de hacerlo más fácil podría ser usar alias_attribute

# app/models/user_relationship.rb
class UserRelationship < ActiveRecord::Base
  alias_attribute :to,   :user_id_to
  alias_attribute :from, :user_id_from
end

La forma general de hacer esto también es bastante simple:

def to=(val)
  self['user_id_to'] = val
end
def from=(val)
  self['user_id_from'] = val
end

contestado el 16 de mayo de 11 a las 22:05

¡Gracias! Creo que alias_attribute es exactamente lo que quiero decir: pastor de ovejas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.