8

我使用 gem state_machine -官方

每个州都可以有“人名”。通过我尝试过的文档和 API:

在 my_model.rb

state_machine :initial => :new do
    state :new, :human_name => 'Added and not accepted'
    ...

在 my_view.haml

%p= MyModel.human_state_name(@item.state_name)
%p= @item.human_state_name

两种变体都只返回“新”而不是“已添加且未接受”。我该做什么?我在设置human_name 或获取human_name 时犯了错误?

更新 作品在:

en:
  activerecord:
    state_machines:
      mymodel: # model name
        states:
          new: 'Added and not accepted' # state name
4

1 回答 1

10

您不需要将 :human_name 选项传递给状态机。只需为您的语言定义翻译:

en:
  activerecord:
    state_machines:
      mymodel: # model name
        state: # state name
          states:
            new: 'Added and not accepted'
          events: # you can also define translations for the events
            some_event: 'put custom translation here'
于 2012-05-25T10:39:27.220 回答