2013-04-27 70 views
0

我在其中一个模型上有一个状态,并且想要使它正确。这里是一个当前的代码版本:如何将rails模型整型状态转换为字符串名称?

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支持的模型,只有几个常量状态。

回答

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 %> 
+0

看起来不错,谢谢你的建议! – lifecoder 2013-04-27 19:35:20