Articles of scope

Usando variables globales de $ 1, $ 2, etc. dentro de la definición del método

Dados los siguientes dos códigos: def hello(z) “hello”.gsub(/(o)/, &z) end z = proc {|m| p $1} hello(z) # prints: nil def hello z = proc {|m| p $1} “hello”.gsub(/(o)/, &z) end hello # prints: “o” ¿Por qué las salidas de estas dos piezas de código son diferentes? ¿Hay una manera de pasar un bloque a […]

Alcance a través de las asociaciones: une y fusiona.

Tengo tres modelos: User , Product y Transaction . (La Transaction pertenece a ambos, y el User tiene muchos Product y el Product tiene muchos User , a través de la Transaction ) En mi modelo de Transaction , tengo un scope para current transacciones current : scope :current, -> { where ‘transactions.start_date IS NOT […]

Filtro de formulario en la página de índice utilizando el scope de modelo cruz

Quiero filtrar una página de índice usando un formulario que filtra usando casillas de verificación sin actualizar la página. Es el índice de Users pero estoy filtrando según los datos del Profile . Soy un principiante en la progtwigción y he logrado juntar algunas de las cosas que estoy tratando de hacer, pero necesito ayuda […]

Cómo reescribir el método de clase group_by de Rails como scope

Me gustaría reescribir mi método de clase como un scope. class Team def self.grouped self.all.group_by { |e| e.type }.map { |k, v| { k => v.group_by { |e| e.sub_type } } } end end ¿Cómo escribiría como un scope? class Team # scope :grouped ?? end

ActiveRecord crea una instancia de una clase incorrecta a través de un ámbito que se dirige a una clase STI

Me gustaría poder llamar al método de build en un ámbito que se dirige a una determinada clase de modelo a través de su tipo de STI, y hacer que ActiveRecord construya una instancia de la clase correcta. class LineItem < ActiveRecord::Base scope :discount, where(type: 'DiscountLineItem') end class DiscountLineItem LineItem.discount.build # Expect an instance of […]

Ámbito en cada uno de los últimos elementos de una relación has_many

Digamos que tengo una relación de has_many entre Usuario y Mensajes. Me gustaría establecer un scope para poder filtrar usuarios por aquellos que tienen algo en el último mensaje que publicaron. Así que busca solo entre los últimos mensajes de cada usuario. Abajo tengo los resultados entre todos los mensajes … class Contact < ActiveRecord::Base […]

Los Rails pueden filtrar los ámbitos en el número de clases asociadas para un campo dado

Estoy usando Rails 3 con Mongoid. Tengo una clase de carpeta que luego se puede compartir con otras clases de usuario como tal class Folder has_one :owner has_many :users Estoy intentando crear dos ámbitos, uno que puede usarse para devolver todas las carpetas privadas y otro para devolver todas las carpetas compartidas. ¿Hay alguna forma […]

Refactorización has_many con ámbitos

Soy un novato y acabo de mostrar mi código a un experto, eso me dijo que no debería usar has_many para filtrar mis variables, sino los scopes . Tengo tres modelos: Usuario, Producto y Propiedad. Así que aquí está mi código en app / models / user.rb : class User has_many :ownerships, foreign_key: “offerer_id”, dependent: […]

¿Cómo puedo crear un ámbito en un modelo que devuelva solo aquellos objetos con un rango asociado mayor que el rango de usuario actual?

Estoy tratando de crear un :readable scope :readable en mi modelo de Page para devolver todas las Pages que la persona current_person tiene “rango” suficiente para leer: scope :readable, lambda { |current_person| joins(:role_readable) .where(:role_readable[:rank].gte(current_person.roles.first.rank) ) } He intentado muchas permutaciones de scope, incluida esta, sin éxito (la que aparece arriba da un error de “no […]

¿Rieles: ámbito predeterminado que se almacena en caché por caché de consulta?

Tengo un scope por defecto como este que es dynamic: default_scope :conditions => [“departure_date >= ?”, DateTime.current.beginning_of_day] Cuando uso este código el primer día está bien. Digamos que el primer día es 28-03-2011 Pero el día siguiente parece que todavía está usando “departure_date >= 28-03-2011” ¿Se está almacenando en caché mi ámbito predeterminado?