我有一个名为 Projects 的 Rails 模型:
class Project < ActiveRecord::Base
具有多种拨动开关,如活动、已启动、付费等。
然后我有一种方法可以以人类可读的格式返回状态:
def status
return 'Pending' if self.pending?
return 'Started' if self.started
return 'In Review' if self.in_review?
return 'Approved' if self.approved
return 'Active' if self.active
end
现在我有另一种称为status!
返回相同信息但以符号形式返回的方法,这在我看来效率低下:
def status
return :pending if self.pending?
return :started if self.started
return :awarded if self.awarded
return :in_review if self.in_review?
return :approved if self.approved
return :active if self.active
end
我显然想做的是更像status.to_sym
但不知道如何做到这一点。
有什么想法吗?