我是 Rails 的新手,我正在尝试理解一个基本概念。
我想创建一个仅包含字符串静态变量的类,我可以在需要时从控制器调用它们。我想通过在app目录下创建一个字符串文件夹来实现这一点。后来我创建了一个名为String的类
class Strings
@testString="this is my test string"
end
后来,当我尝试从控制器的索引中调用它时失败了(但我认为函数或控制器并不重要。为什么我无法访问它?我是否必须一直应用def self.testString?
我是 Rails 的新手,我正在尝试理解一个基本概念。
我想创建一个仅包含字符串静态变量的类,我可以在需要时从控制器调用它们。我想通过在app目录下创建一个字符串文件夹来实现这一点。后来我创建了一个名为String的类
class Strings
@testString="this is my test string"
end
后来,当我尝试从控制器的索引中调用它时失败了(但我认为函数或控制器并不重要。为什么我无法访问它?我是否必须一直应用def self.testString?
我会将它们创建为方法或常量:
class Strings
TESTCONST = "this is my test string"
def self.test_string
"this is my test string"
end
end
使用它们:Strings.test_strings 或 Strings::TESTCONST
假设您在 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