8

私はgemstate_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 に答える