A User
has_one
Account
. Al configurar attr_accessible
en el modelo de Usuario, ¿es mejor proteger :account
, :account_id
o ambos?Rieles attr_accessible: object vs: object_id
attr_accessible :account
o
attr_accessible :account_id
o
attr_accessible :account, :account_id
Siento que ambos es el camino a seguir (ya que es más seguro) a pesar de que se siente menos seco.
actualización para dar más antecedentes
Sólo para dar un poco más antecedentes sobre eso que estoy pidiendo. Yo, como la mayoría de las personas, vi lo que le sucedió a Github, así que revisamos nuestra aplicación y la bloqueamos un poco más.
En el proceso de hacer esto yo encontramos pruebas en las que pasan en cuenta
User.create account: account
y donde pasamos en account_id:
User.create account_id: account.id
Mis opciones eran o bien el cambio todos ellos para ser constante o cambiar attr_accessible
para permitir cualquiera. Decidí cambiarlos todos para ser consistente. Pero esto me preocupó de que tal vez estuviéramos utilizando ambos métodos en nuestra aplicación y podría romper nuestra aplicación solo permitiendo una u otra.
Me equivoqué cuando dije que usar ambos es más seguro. Fue un largo día.
¿Está usando 'accept_nested_attributes_for' también? – tadman
Si la respuesta a mi pregunta depende de la respuesta a la suya, me gustaría ver el motivo y una respuesta en ambos casos. – pcg79
Si está usando 'accept_nested_attributes_for: account', entonces los rieles automáticamente intentarán aplicar y' params [: user] [: account_attributes] 'cuando lo haga su creación o actualización. En este caso, también necesitaría agregar 'attar_accessible: account_attributes' – rwc9u