gpt4 book ai didi

phoenix-framework - Phoenix View 模块不可用

转载 作者:行者123 更新时间:2023-12-04 12:26:06 24 4
gpt4 key购买 nike

我的应用程序和 api json 请求以及常规 html 都可以工作。我的路由器.ex

defmodule MyApp.Router do
use MyApp.Web, :router

pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_browser_headers
end

pipeline :api do
plug :accepts, ["json"]
end

scope "/api", MyApp do
pipe_through :api # Use the default browser stack

scope "/v1", V1, as: :v1 do
resources "/users", UserController, except: [:new, :edit, :index]
end
end

scope "/", MyApp do
pipe_through :browser # Use the default browser stack
get "/confirm/:token", UserController, :confirm, as: :user_confirm
end

end

我的 web/controllers/v1/user_controller.ex
defmodule MyApp.V1.UserController do
use MyApp.Web, :controller

def create(conn, %{"user" => user_params}) do
...
conn
|> put_status(:created)
|> put_resp_header("location", v1_user_path(conn, :show, user))
|> render("sign_up.json", user: Map.put(user, :session, result[:session]))
...
end

和我的 web/controllers/user_controller.rb
defmodule MyApp.UserController do
use MyApp.Web, :controller

alias MyApp.User

def confirm(conn, %{"token" => token}) do
...
render(conn, "confirmed.html")
...
end

end

我的 web/views/v1/user_view.ex
defmodule MyApp.V1.UserView do
use MyApp.Web, :view
...
end

和我的 web/views/user_view.ex
defmodule MyApp.UserView do
use MyApp.Web, :view

end

一切正常,直到我为 html 添加了一个路由和一个 Controller 。
现在,当我请求 api json 时,出现错误
Request: POST /api/v1/users
** (exit) an exception was raised:
** (UndefinedFunctionError) function MyApp.V1.UserView.render/2 is undefined (module MyApp.V1.UserView is not available)

但是如果我删除 web/vews/user_view.ex,那么这个查询就可以正常工作了。
你如何纠正这个错误?

最佳答案

这些类型的错误通常可以通过运行 mix clean 来解决。在开发中重新加载实时代码期间,您也可能会看到此类错误。如果是这样,请尝试重新启动 Phoenix.Server,如果没有帮助,请运行 mix clean

关于phoenix-framework - Phoenix View 模块不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43442008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com