Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从另一个模型触发模型中的状态更改_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 从另一个模型触发模型中的状态更改

Ruby on rails 从另一个模型触发模型中的状态更改,ruby-on-rails,ruby,Ruby On Rails,Ruby,刚接触rails并学习如何使用rails,我该如何让一个状态为哭泣的演员的粉丝改变为同样的哭泣状态 class Actor < ApplicationRecord include AASM has_many :fans aasm do state :laughing, :initial => true state :crying event :cry do transitions :from => :laughing, :

刚接触rails并学习如何使用rails,我该如何让一个状态为哭泣的演员的粉丝改变为同样的哭泣状态

class Actor < ApplicationRecord
  include AASM

  has_many :fans 

  aasm do
    state :laughing, :initial => true
    state :crying

    event :cry do
      transitions :from => :laughing, :to => :crying
    end
    event :laugh do
      transitions :from => :crying, :to => :laughing
    end
  end
end  

class Fan < ApplicationRecord
  include AASM

  belongs_to :author 

  aasm do
    state :laughing, :initial => true
    state :crying

    event :cry do
      transitions :from => :laughing, :to => :crying
    end
    event :laugh do
      transitions :from => :crying, :to => :laughing
    end
  end
end
class-Actortrue
国家:哭泣
事件:哭吧
转换:从=>:笑,到=>:哭
结束
事件:笑吧
转换:从=>:哭,:到=>:笑
结束
结束
结束
类风扇<应用程序记录
包括原子吸收光谱法
属于:作者
aasm do
state:laughing,:initial=>true
国家:哭泣
事件:哭吧
转换:从=>:笑,到=>:哭
结束
事件:笑吧
转换:从=>:哭,:到=>:笑
结束
结束
结束
您可以使用来触发参与者的其他方法:

class Actor < ApplicationRecord
  include AASM

  has_many :fans 

  aasm do
    state :laughing, :initial => true
    state :crying, :success => :fans_cry_too

    # ...
  end

  private

  def fans_cry_too
    fans.each(&:cry)
  end
end
class-Actortrue
状态:哭泣,:成功=>:粉丝们也哭了
# ...
结束
私有的
你也哭了吗
粉丝们,每个人(&:哭泣)
结束
结束