Cuando uso el attr_accessible
para especificar qué campos de mi Modelo I expondré, ¿es cierto también para el script/consola? Quiero decir que algo que no especifiqué como attr_accessible
¿no será accesible también a través de la consola?attr_accessible in rails Active Record
Respuesta
Esto solo es válido para la asignación de masa. Por ejemplo, si se va a establecer attr_protected :protected
en su modelo:
>> Person.new(:protected => "test")
=> #<Person protected: nil>
Por el contrario, podría configurar todos los atributos que desea como accesible a través de attr_accessible
.
Sin embargo, el siguiente todavía funcionará:
>> person = Person.new
=> #<Person protected: nil>
>> person.protected = "test"
=> #<Person protected: "test">
Este es el mismo comportamiento que en controladores, vistas, etc. attr_protected
sólo protege contra la asignación de masas de variables, principalmente de formas, etc.
I conocer qué:
Especifica una lista blanca de atributos modelo que se pueden establecer a través de masa-asignación, como new(attributes)
, update_attributes(attributes)
, o attributes=(attributes)
. Esto es lo contrario de la macro attr_protected:
Mass-assignment will only set attributes in this list, to assign to the rest of
attributes you can use direct writer methods. This is meant to protect sensitive
attributes from being overwritten by malicious users tampering with URLs or forms.
If you‘d rather start from an all-open default and restrict attributes as needed,
have a look at `attr_protected`.
por lo que significa que simplemente evitar masa-asignación pero todavía puede establecer un valor.
La consola se comporta exactamente como su aplicación Rails. Si protegió algunos atributos para un modelo específico, no podrá asignar estos atributos de forma masiva desde la consola o desde la aplicación Rails.
Cuando especifica que algo sea attr_accessible
, solo se puede acceder a estos elementos en la consola o mediante la interfaz del sitio web.
por ejemplo: Supongamos que usted hizo name
y email
ser attr_accessible
:
attr_accessible :name, :email
y dejado fuera created_at
y updated_at
(que se supone que). Entonces solo puede editar/actualizar esos campos en la consola.
Si desea exponer un campo de formulario su modelo, puede utilizar
attr_accessor :meth # for getter and setters
attr_writer :meth # for setters
attr_reader :meth # for getters
o si desea añadir un poco de comportamiento para su atributo, tendrás que utilizar atributos virtuales
def meth=(args)
...
end
def meth
...
end
aclamaciones.
- 1. Ruby on Rails Active Record Attribute Introspection
- 2. Cómo desactivar auto_increment en Rails Active Record
- 3. Rails Active Record translation: Auto capitalize/downcase?
- 4. cómo usar IN & Between Clause en YII ACtive Record?
- 5. Rails Active Record seleccione padre e hijo como un resultado
- 6. Rails Active Record find (: all,: order =>) issue
- 7. ¿Cómo implementar la herencia Active Record en Ruby on Rails?
- 8. codeigniter active record where, or_where?
- 9. Obteniendo código SQL actual CodeIgniter Active Record
- 10. CodeIgniter - Active Record - sql - complejo unen
- 11. Diferencia entre Active Record y DAO?
- 12. Active Record has_many genera sql con clave foránea IS NULL
- 13. ¿Utiliza generadores Active Record después de la instalación de Mongoid?
- 14. Rails - Cómo declarar attr_accessible para múltiples roles sin duplicación
- 15. ¿Cómo buscar un texto con Active Record en Ruby on Rails 3?
- 16. Rails 3, consulta Active Record vuelve objeto ActiveRecord :: Relation, en lugar de objetos
- 17. ¿Hay un archivo de traducción inglés predeterminado para Active Record?
- 18. Rieles: error constante no inicializado en Active Record destroy
- 19. Actualización con el límite 1 en codeigniter use active record
- 20. Data Mapper es una tendencia más moderna que Active Record
- 21. ¿Qué significa Doctrine Add Above Active Record - CodeIgniter?
- 22. fin Active Record por el tamaño del grupo
- 23. my_object.save (falso) no omite REALMENTE mis validaciones de Active Record
- 24. ¿Por qué la relación de Active Record no se devuelve en la consola?
- 25. ¿Qué podría ser esto: Nuevo lenguaje de consulta encadenable Active Record construido sobre álgebra relacional?
- 26. Aplicación Themes in Rails
- 27. Helpers in Rails motor
- 28. before_create in rails model
- 29. Rubygems. LoadError in Rails
- 30. create_or_update method in rails