0

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

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

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

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

4

2 回答 2

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

于 2012-09-19T18:40:49.023 回答
0

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

一种方法是使用常量。这就是在 ruby​​ 中设计常量的目的。所以文件 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
于 2012-09-19T18:42:14.997 回答