我有一个名为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
,但不知道如何做到这一点。
有什么想法?
看起来它可以作为[状态机](https://github.com/troessner/transitions)实现。 – Stefan 2013-04-20 06:33:34
如果这些状态是相互排斥的,为什么不能有一个'status'字段并让您的视图使用一组单选按钮或一个选择字段来设置状态? – 2013-04-20 03:08:25