2013-06-26 148 views
1

我有這種奇怪的情況。任何幫助,將不勝感激。如何在不創建實例變量的情況下使變量可用

這裏是我的階級結構的前景:

class A 
    def 1_function a1 
    call_c 
    end 

    def 2_function 
    call_c 
    end 

    def call_c 
    if a1 present 
     do this 
    else 
     do this 
    end 
    end 
end 

class B 
    A.1_function a1 
end 

class C 
    A.2_function 
end 

在這裏,在call_c我需要檢查,如果該參數A1存在或不存在。我不能在call_c添加默認放慢參數,因爲有許多功能1_function2_functioncall_c之間實際上中間(因此我最終會改變很多)

方法1: 我可以創建我班@變量。但是這會破壞原子性,並且不適合使用靜態變量維護狀態。

請給我建議任何其他的選擇。

+0

我看到你有一個非常高的代表有很多Rails的經驗,所以我對代碼示例有點驚訝。你介意將它更新爲沒有語法錯誤的東西嗎?你真的想要從B類和C類發送一個實例方法名稱給A類嗎?另外,@variables不是靜態變量,它們是實例變量。這是你的意思嗎? –

回答

0

也許我不明白你的問題,但如果這真的是一個類和A方法是真的實例方法,再沒什麼好說的內在的錯誤在一個實例變量存儲a1call_c引用它。順便說一句,我假設1_function,2_functioncall_c都應該是方法名稱,前兩者的非法語法儘管。

相關問題