Rails 4 - Statesman Gem - 定义当前状态的方法

Rails 4 - Statesman Gem -method to define current state

我正在尝试在 Rails 4 中制作一个应用程序并使用 Statesman 处理状态。

在我的项目模型中,我想显示对象的 :current_state。但是,我不想显示属性的名称。相反,我想写一个人类友好的状态,如果对象处于相应的状态,它可以被渲染。

例如,我定义了一个名为:request_approval的状态。

在我的项目展示页面,我可以写:

<%= @project.current_state %>

输出为request_approval.

如果项目在 current_state :request_approval,我该如何写一些内容:request_approval,渲染:等待对您的批准请求的响应?我可以在我的模型中创建某种方法来做到这一点吗?

在你的projects_helper中你可以写一个方法:

def text_for_state(state)
  case state
  when 'request_approval'
    'Awaiting Response'
  when 'something_else'
    'Then Something Else'
  end
end

在你看来只写:

<%= text_for_state(@project.current_state) %>

这是一个选项,可能有更好的解决方案。