0

Rails は初めてで、基本的な概念を理解しようとしています。

文字列の静的変数のみを含むクラスを作成したいと思います。必要なときにコントローラーから呼び出すことができます。アプリディレクトリの下にstringsフォルダーを作成して、これを実現したかったのです。後で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 の下のクラスの 1 つが ErrorMessages になります。

1 つの方法は、定数を使用することです。これは、Ruby で定数が設計されたものです。したがって、ファイル app/models/strings/error_messages.rb は次のようになります。

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

または、 app/models/strings/error_messages.rb が次のようなcattr_readerを持つこともできます。

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 に答える