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

Ruby on rails Rails 4-Statesman Gem-定义当前状态的方法,ruby-on-rails,methods,states,Ruby On Rails,Methods,States,我正在尝试在Rails 4中制作一个应用程序,并使用Statesman for State 在我的项目模型中,我想显示对象的:当前_状态。但是,我不希望显示属性的名称。相反,我想编写一个人性化的状态,如果对象处于相应的状态,则可以对其进行渲染 例如,我定义了一个名为:request\u approval的状态 在我的项目展示页面中,我可以写: <%= @project.current_state %> 输出为请求批准 如果项目处于当前状态,我如何编写这样的内容:请求批准,呈现:

我正在尝试在Rails 4中制作一个应用程序,并使用Statesman for State

在我的项目模型中,我想显示对象的:当前_状态。但是,我不希望显示属性的名称。相反,我想编写一个人性化的状态,如果对象处于相应的状态,则可以对其进行渲染

例如,我定义了一个名为:request\u approval的状态

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

<%= @project.current_state %>

输出为请求批准


如果项目处于当前状态,我如何编写这样的内容:请求批准,呈现:等待对批准请求的响应?我可以在我的模型中使用某种方法来实现这一点吗?

在您的
项目中
您可以编写一种方法:

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


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

创建一个
helper
方法,因为您只需要在视图中使用它。你可以在may beHi Deep内使用
开关盒
,我该怎么做?它似乎不起作用。我只是在应该显示文本的地方呈现空白,当我写入(当前_状态)而不是状态时,它可以正常工作。非常感谢