Articles of rails activerecord

Acceso a current_user desde dentro de un modelo en Ruby on Rails

Necesito implementar un control de acceso detallado en la aplicación Ruby on Rails. Los permisos para usuarios individuales se guardan en una tabla de base de datos y pensé que sería mejor dejar que el recurso respectivo (es decir, la instancia de un modelo) decidiera si un determinado usuario puede leer o escribir en él. […]

Combine dos objetos ActiveRecord :: Relation

Supongamos que tengo los siguientes dos objetos: first_name_relation = User.where(:first_name => ‘Tobias’) # ActiveRecord::Relation last_name_relation = User.where(:last_name => ‘Fünke’) # ActiveRecord::Relation ¿es posible combinar las dos relaciones para producir un objeto ActiveRecord::Relation que contenga ambas condiciones? Nota: Soy consciente de que puedo encadenar los wheres para obtener este comportamiento, lo que realmente me interesa es […]

Comprender: opción de fuente de has_one / has_many a través de Rails

has_one/has_many :through comprender la opción de :source de has_one/has_many :through asociación. La explicación de Rails API tiene muy poco sentido para mí. “Especifica el nombre de asociación de origen utilizado por has_many :through => :queries . :through => :queries solo si el nombre no puede inferirse de la asociación. has_many :subscribers, :through => :subscriptions buscarán […]

Los nuevos datos no persisten en la columna Rails Array en Postgres

Tengo un modelo de usuario con una columna de amigos de tipo texto. Esta migración se ejecutó para usar la función de matriz con postgres: add_column :users, :friends, :text, array: true El modelo de usuario tiene este método: def add_friend(target) #target would be a value like “1234” self.friends = [] if self.friends == nil update_attributes […]

ActiveRecord O consulta hash Hash

Sé que hay 3 notaciones principales para el suministro de argumentos al método where ActiveRecord: Cadena pura Formación Picadillo Especificar and para el método where es sencillo: # Pure String notation Person.where(“name = ‘Neil’ AND age = 27”) # Array notation Person.where([“name = ? AND age = ?”, ‘Neil’, 27]) # Hash notation Person.where({name: “Neil”, […]

¿Cómo se expresa una consulta NOT IN con ActiveRecord / Rails?

Solo para actualizar esto ya que parece que mucha gente viene a esto, si está utilizando Rails 4, mire las respuestas de Trung Lê` y VinniVidiVicci. Topic.where.not(forum_id:@forums.map(&:id)) Topic.where(published:true).where.not(forum_id:@forums.map(&:id)) Espero que haya una solución fácil que no involucre find_by_sql , si no, entonces supongo que tendrá que funcionar. Encontré este artículo que hace referencia a esto: […]

¿Cómo puedo evitar ejecutar callbacks de ActiveRecord?

Tengo algunos modelos que tienen callbacks after_save. Por lo general, eso está bien, pero en algunas situaciones, como cuando se crean datos de desarrollo, quiero guardar los modelos sin ejecutar las devoluciones de llamadas. ¿Hay una manera simple de hacer eso? Algo parecido a … Person#save( :run_callbacks => false ) o Person#save_without_callbacks Busqué en los […]

Conexión de Rails 3.1 con múltiples bases de datos

En ShowNearby hemos estado haciendo una gran migración a RoR 3.1 desde PHP y enfrentamos varios problemas que algunos de ustedes ya han resuelto. Tenemos grandes cantidades de datos y decidimos segregar nuestro DB en varios DB que podemos manejar por separado. Por ejemplo, nuestras cuentas, lugares, registros y otros se dividen en varias bases […]

Registro aleatorio en ActiveRecord

Necesito obtener un registro aleatorio de una tabla a través de ActiveRecord. He seguido el ejemplo de Jamis Buck desde 2006 . Sin embargo, también he encontrado otro camino a través de una búsqueda en Google (no se puede atribuir con un enlace debido a nuevas restricciones de usuario): rand_id = rand(Model.count) rand_record = Model.first(:conditions […]

¿Cómo puedo establecer valores predeterminados en ActiveRecord?

¿Cómo puedo establecer el valor predeterminado en ActiveRecord? Veo una publicación de Pratik que describe un fragmento de código feo y complicado: http://m.onkey.org/2007/7/24/how-to-set-default-values-in-your-model class Item < ActiveRecord::Base def initialize_with_defaults(attrs = nil, &block) initialize_without_defaults(attrs) do setter = lambda { |key, value| self.send("#{key.to_s}=", value) unless !attrs.nil? && attrs.keys.map(&:to_s).include?(key.to_s) } setter.call('scheduler_type', 'hotseat') yield self if block_given? end end […]