1

この質問は、AASM gem 開発者によって回答されることを意図しています。

Rails アプリ モデル ( Mongoid ) でAASM gemを使用しています。定義されたすべての状態のスコープを自動的に生成することは知っています。たとえば、これを持って...

class Order
  include Mongoid::Document
  include Mongoid::Timestamps
  include AASM

  field :aasm_state

  aasm do
    state :pending, :initial => true
    state :received

    event :receive do
      transitions :from => :pending, :to => :received
    end
  end
end

...できるようにします: Order.pendingOrder.received

私の質問は非常に単純です。指定された状態の補数を取得するためにスコープも生成しますか? 次のようなもの: Order.not_pendingは、ステータスが「保留中」とは異なる注文を取得しますか?.

このように、それを取得するために独自のスコープを構築するのは非常に簡単であることを私は知っています...

scope :not_pending, ->{ ne(aasm_state: "pending") }

...しかし、あなたがそれを定義しないことを確認したいのですが、もしそうなら、私は自分のスコープよりもあなたのスコープを使用したいからです。

4

1 に答える 1

1

いいえ、AASMは反対のスコープを提供しません。検討しましたが、必要以上にスコープスペースに負担をかけないために、最終的にはやめることにしました。

于 2015-02-13T08:55:25.870 に答える