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