如何在不创建实例变量的情况下使变量可用

时间:2013-06-26 01:27:06

标签: ruby-on-rails instance-variables static-variables

我有这种奇怪的情况。任何帮助,将不胜感激。

以下是我班级结构的展望:

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: 我可以在班上创建一个@变量。但这会破坏原子性,并且不适合使用静态变量维护状态。

请建议我任何其他选择。

1 个答案:

答案 0 :(得分:0)

也许我不明白你的问题,但如果这真的是一个类而且A中的方法实际上是实例方法,那么在实例变量中存储a1实际上没有任何错误并从call_c引用它。顺便说一句,我假设1_function2_functioncall_c都应该是方法名称,尽管前两者的语法非法。