Rails:创建一个静态字符串类

时间:2012-09-19 18:21:52

标签: ruby-on-rails ruby-on-rails-3 class static global-variables

我是Rails的新手,我正在尝试理解一个基本概念。

我想创建一个只包含字符串静态变量的类,我可以在需要时从控制器中调用它们。我想通过在 app 目录下创建字符串文件夹来实现此目的。后来我创建了一个名为 String

的类
class Strings
@testString="this is my test string"
end

稍后当我尝试从控制器的索引调用它时失败(但我认为函数或控制器不重要。为什么我无法访问它?我是否必须申请 def self.testString 一直在吗?

2 个答案:

答案 0 :(得分:1)

我会将它们创建为方法或常量:

class Strings

  TESTCONST = "this is my test string"

  def self.test_string
   "this is my test string"
  end

end

使用它们:Strings.test_strings或Strings :: TESTCONST

答案 1 :(得分:0)

假设您在app / models下有一个字符串文件夹。 app / models下的其中一个类是ErrorMessages。

一种方法是使用常量。这是常量在红宝石中设计的。 所以文件app / models / strings / error_messages.rb将是:

class Strings::ErrorMessages
  TEST_STRING = "this is my test string"
end

或者,您可以拥有cattr_reader,其中app / models / strings / error_messages.rb将是:

class Strings::ErrorMessages
  cattr_reader :test_string

  @test_string = "this is my test string"
end

或者你可以让一个方法返回只读字符串。

class Strings::ErrorMessages
  def self.test_string
    "this is my test string"
  end
end