0

我在其中一个模型上有一个状态,并希望使它正确。这是当前的代码版本:

  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 回答