Ruby on rails 在RubyonRails中使用数据库回调触发流控制器

Ruby on rails 在RubyonRails中使用数据库回调触发流控制器,ruby-on-rails,ruby,Ruby On Rails,Ruby,我是Ruby和Rails新手,在一个已经编写好的应用程序中工作(使用Ruby 2.2.3、Rails 4.2.5.1和Puma 2.16.0)。我们要做的是使用ActiveRecord回调来监视数据库中的更改(我们在创建后调用,在更新后调用),以触发流控制器(类似于这里的示例:)使用模型中的数据发送消息。我们已经在特定的模型类中编写了回调 e、 g tempHash中的数据是我们要发送的消息中的数据 我们如何触发消息控制器发送此数据?或者在RubyonRails中有更好的方法来实现这一点吗 这当

我是Ruby和Rails新手,在一个已经编写好的应用程序中工作(使用Ruby 2.2.3、Rails 4.2.5.1和Puma 2.16.0)。我们要做的是使用ActiveRecord回调来监视数据库中的更改(我们在创建后调用,在更新后调用),以触发流控制器(类似于这里的示例:)使用模型中的数据发送消息。我们已经在特定的模型类中编写了回调

e、 g

tempHash中的数据是我们要发送的消息中的数据


我们如何触发消息控制器发送此数据?或者在RubyonRails中有更好的方法来实现这一点吗

这当然不属于模型。是否有理由不将其放置在为对象处理路由的控制器中?否则,您可以进一步解释用例,因为您的实际意图有点不清楚。模型不应该这样做。这个用例与流媒体无关?可能接近你想要的。另外需要注意的是,活动记录回调实际上并不在数据库上,而是在模型上。通过rails更改DB将被捕获。但是,如果数据库是从其他源手动更新的,或者直接从其他源手动更新,则数据库不会在模型中修改,而是使用catalog::abstractadapter填充和更新数据库,以使用open uri和nokogiri从外部xml文件获取数据。有没有比开放记录回调更好的方法来监视数据库中的更改?你能从控制器上做到这一点吗?基本上,我们希望能够在db的某个部分中的数据被更新或createdbest bet可能是and的组合时发送通知。使用
hair\u trigger
创建SQL触发器以监视更改,并在任何时候使用
定期检查更改表以查看新事件。不完全是“活的”,但可能很接近,尽管这肯定不属于模型。是否有理由不将其放置在为对象处理路由的控制器中?否则,您可以进一步解释用例,因为您的实际意图有点不清楚。模型不应该这样做。这个用例与流媒体无关?可能接近你想要的。另外需要注意的是,活动记录回调实际上并不在数据库上,而是在模型上。通过rails更改DB将被捕获。但是,如果数据库是从其他源手动更新的,或者直接从其他源手动更新,则数据库不会在模型中修改,而是使用catalog::abstractadapter填充和更新数据库,以使用open uri和nokogiri从外部xml文件获取数据。有没有比开放记录回调更好的方法来监视数据库中的更改?你能从控制器上做到这一点吗?基本上,我们希望能够在db的某个部分中的数据被更新或createdbest bet可能是and的组合时发送通知。使用
hair\u trigger
创建SQL触发器以监视更改,并在任何时候使用
定期检查更改表以查看新事件。不完全是“活的”,但可能已经足够近了
after_create do 

  require 'json'
  tempHash = {
    "event_type" => "some event type",
    "data" => {
      "id" => "#{id}",
      "name" => "#{name}",
    }
  }

end