在 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
在 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