2011-10-05 67 views
7

這些方法是什麼,它們覆蓋它們有多糟?什麼是Ruby中的Object :: private和Object :: public?

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

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

當試圖爲模型定義名爲private或public的範圍時,Rails會出現問題。由於更正了BUG https://rails.lighthouseapp.com/projects/8994/tickets/4167-activerecord-named_scope-using-columns-as-the-name-is-buggered現在有很多類似的警告:

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

回答

6

publicprivate方法實際上是Ruby的訪問修飾符。

基本上,當你這樣做:

class Example 
    public 

    def something 
    end 

    private 

    def something_else 
    end 
end 

publicprivate關鍵字實際上不是在所有的關鍵字,他們的方法調用。我很肯定,重寫它們不是一個好主意,所以我會以其他方式命名示波器。

相關問題