state_machine ruby​​ gem中的state_name for state

dmr*_*dmr 7 ruby ruby-on-rails-3

我使用gem state_machine - 官方

每个州都有"人名".通过我尝试过的文档和API:

在my_model.rb中

state_machine :initial => :new do
    state :new, :human_name => 'Added and not accepted'
    ...
Run Code Online (Sandbox Code Playgroud)

在my_view.haml中

%p= MyModel.human_state_name(@item.state_name)
%p= @item.human_state_name
Run Code Online (Sandbox Code Playgroud)

两种变体都只返回'new'而不是'Added and not accepted'.我该做什么?我在设置human_name或获取human_name时犯了错误?

更新 适用于:

en:
  activerecord:
    state_machines:
      mymodel: # model name
        states:
          new: 'Added and not accepted' # state name
Run Code Online (Sandbox Code Playgroud)

mel*_*kes 9

您不需要将: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'
Run Code Online (Sandbox Code Playgroud)