を状態に動いているオブジェクトが、私は空手道場レールサイトを持っています。このサイトでは教師が指導するクラスを管理し、生徒を次の論理的なベルトに移動させることができます。AASM:確認私は私の例では<a href="http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk" rel="nofollow noreferrer">http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk</a></p> <p>からAASMを使用しています前方
ベルトの進行のための私の「学生」モデルの使用AASM、それは次のように定義されています:
class Student < ActiveRecord::Base
acts_as_state_machine :initial => :White_Belt
state :White_Belt
state :Yellow_Belt
state :Green_Belt
state :Purple_Belt
state :Brown_Belt
state :Black_Belt
event :Graduate do
transitions :from => :White_Belt, :to => :Yellow_Belt
...
transitions :from => :Brown_Belt, :to => :Black_Belt
end
end
...と教師モデルは、次のように定義されている...
class Teacher < ActiveRecord::Base
def Promote_Student(pupil)
pupil.Graduate!
end
end
があります教師だけが「Student.Graduate!」と呼ぶことができる方法を保証しますか?私は ":guard"コマンドを見たことがありますが、私は現在のオブジェクト(Student)をチェックする機能しか持たず、関数を呼び出したオブジェクト(Teacher)しかチェックできないようです。理想的である
event :Gradate(teacher_id) do
...
end
それはまた、私は私のようなイベントにPARAMを追加することができないことが表示されます
... ...。
コメントはありますが、コメントでは何も保証されません。もう少し具体的なものを提供したいと思っています。あなたの提案をありがとう。 – Abel