在 Phoenix 中使用带有多个控制器的自定义视图

Use custom View with multiple Controllers in Phoenix

Phoenix 中,有什么方法可以指定使用哪个 View 而不是让 Controller 从名称空间变形?

我有多个控制器,每个控制器的视图方法都是相同的。我想创建一个视图并将其与(几乎)我所有的控制器一起使用。

这可能吗?更重要的是,在我的情况下这是一种不好的做法还是合理的?

您可以使用put_view/2设置视图模块。根据您的描述,这不是坏习惯。您可以将以下代码放入您的控制器中:

plug :put_view, MyApp.TheView

或者您可以修改控制器内单个功能的视图,例如:

  def index(conn, _params) do
    conn
    |> put_view(MyApp.TheView)
    |> render("index.html")
  end