2013-06-26 120 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都应该是方法名称,前两者的非法语法尽管。

相关问题