【问题标题】:How to make the variable available without creating instance variable如何在不创建实例变量的情况下使变量可用
【发布时间】:2013-06-23 00:09:02
【问题描述】:

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

这是我的班级结构的展望:

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 之间有很多函数(因此我最终会改变很多)

方法一: 我可以在我的班级中创建一个 @ 变量。但这会破坏原子性,并且不适合使用静态变量来维护状态。

请给我建议任何其他选择。

【问题讨论】:

  • 我看到你有很多 Rails 经验的代表非常高,所以我对编码示例有点惊讶。您介意将其更新为没有语法错误的内容吗?您真的是要从 B 类和 C 类向 A 类发送实例方法名称吗?此外,@variables 不是静态变量,它们是实例变量。你是这个意思吗?

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


【解决方案1】:

也许我不明白你的问题,但如果这确实是一个类并且A 中的方法确实是实例方法,那么将a1 存储在实例变量中并从call_c。顺便说一句,我假设 1_function2_functioncall_c 都应该是方法名称,尽管前两者的语法是非法的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-14
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    相关资源
    最近更新 更多