在凤凰1.3中通知频道有关模型(上下文)变化的最佳方法?

时间:2017-08-27 21:26:26

标签: elixir phoenix-framework

我想在我的模型上通知一个关于创建/更新/删除事件的频道。

例如:

defmodule PhoenixLibrary.Books do
  def delete_book(%Book{} = book) do
    PhoenixLibrary.Endpoint.broadcast("books:updates", "delete", %{id: book.id})
    Repo.delete(book)
  end
end

将商店这样的代码放在上下文中是否可以?

我在某处阅读“elixir方式”将这些代码放入控制器。但是我希望在从控制台或管理面板(如ex_admin)更改上下文时广播这些事件。

1 个答案:

答案 0 :(得分:0)

我是凤凰城的新手,但对我来说这看起来不错。有些人可能会争论广播是否属于您的业务逻辑,但是在您的示例中在上下文中进行广播是最简单且最一致的方式,而不会过度复杂。