Rails 4 - Statesman Gem -method来定义当前状态

时间:2016-03-22 07:44:54

标签: ruby-on-rails methods states

我正在尝试在Rails 4中创建一个应用程序,并使用Statesman作为状态。

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

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

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

<%= @project.current_state %>

,输出为request_approval。

如何编写一些内容,说明项目是否在current_state中:request_approval,render:等待对您的批准请求的响应?我可以在我的模型中使用某种方法来做到这一点吗?

1 个答案:

答案 0 :(得分:0)

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) %>

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