0

モデルの 1 つにステータスがあり、それを正しくしたいと考えています。現在のコード バージョンは次のとおりです。

  self::TEST_NONE = 0
  self::TEST_PENDING = 1
  self::TEST_DONE = 2

  def self.test_status_name name
    case name
      when self::TEST_NONE
        'None'
      when self::TEST_PENDING
        'Pending'
      when self::TEST_DONE
        'Done'
      else
        'None'
    end
  end

そしてビューでは

<%= Device::test_status_name @device.test_status %>

これは一般的に機能しますが、間違っていると感じます。test_status のデフォルトの to_s メソッドのようなものを実装したいと考えています。追加のクラスが機能する可能性があります (正しく実装する方法がわからない) が、そこに AR を使用したモデルは必要なく、いくつかの一定のステータスだけが必要です。

4

1 に答える 1

2

なぜ次のようなものではないのですか

class Device
  TEST_STATUSES = %w{ None Pending Done }

  def test_status_name
    test_status ? TEST_STATUSES[test_status] : 'None'
  end
end

<%= @device.test_status_name %>
于 2013-04-27T19:22:47.720 に答える