2011-10-05 11 views
7

¿Cuáles son estos métodos y qué tan malo es anularlos?¿Qué es Object :: private y Object :: public en Ruby?

irb(main):001:0> Object::respond_to?('private', true) 
=> true 

irb(main):002:0> Object::respond_to?('public', true) 
=> true 

El problema surge en Rails cuando se intenta definir un ámbito denominado privado o público para un modelo. Debido a la solución para el bug https://rails.lighthouseapp.com/projects/8994/tickets/4167-activerecord-named_scope-using-columns-as-the-name-is-buggered ahora hay una gran cantidad de advertencias como:

Creating scope :public. Overwriting existing method MyModel.public. 

Respuesta

6

Los métodos public y private en realidad son modificadores de acceso de rubí.

Básicamente, cuando se hace esto:

class Example 
    public 

    def something 
    end 

    private 

    def something_else 
    end 
end 

Los public y private palabras clave no son realmente palabras clave en todo, son las llamadas a métodos. Estoy bastante seguro de que no es una buena idea anularlos, así que nombraré los ámbitos de alguna otra manera.

Cuestiones relacionadas