Preguntas etiquetadas con activerecord

Active Record es un patrón que combina la lógica de dominio con la abstracción de almacenamiento en un solo objeto. Utilice esta etiqueta para preguntas sobre el patrón, [rails-activerecord] para preguntas sobre el marco Rails ORM.


9
¿Cómo devolver una relación ActiveRecord vacía?
Si tengo un alcance con una lambda y requiere un argumento, dependiendo del valor del argumento, podría saber que no habrá coincidencias, pero aún quiero devolver una relación, no una matriz vacía: scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] } Lo que realmente quiero …

11
Rieles: seleccione valores únicos de una columna
Ya tengo una solución que funciona, pero realmente me gustaría saber por qué esto no funciona: ratings = Model.select(:rating).uniq ratings.each { |r| puts r.rating } Selecciona, pero no imprime valores únicos, imprime todos los valores, incluidos los duplicados. Y está en la documentación: http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields





5
Rails find_or_create_by más de un atributo?
Hay un atributo dinámico útil en el registro activo llamado find_or_create_by: Model.find_or_create_by_<attribute>(:<attribute> => "") Pero, ¿qué sucede si necesito encontrar_o_crear con más de un atributo? Digamos que tengo un modelo para manejar una relación M: M entre Group y Member llamada GroupMember. Podría tener muchas instancias donde member_id = 4, …



4
delete_all vs destroy_all?
Estoy buscando el mejor enfoque para eliminar registros de una tabla. Por ejemplo, tengo un usuario cuyo ID de usuario se encuentra en muchas tablas. Quiero eliminar este usuario y cada registro que tenga su ID en todas las tablas. u = User.find_by_name('JohnBoy') u.usage_indexes.destroy_all u.sources.destroy_all u.user_stats.destroy_all u.delete Esto funciona y …




4
Anular métodos de atributos de ActiveRecord
Un ejemplo de lo que estoy hablando: class Person < ActiveRecord::Base def name=(name) super(name.capitalize) end def name super().downcase # not sure why you'd do this; this is just an example end end Esto parece funcionar, pero acabo de leer la sección sobre la anulación de los métodos de atributo en …

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.