Обновился с Phoenix 1.1.6 до 1.2 и теперь получаю CompileError

Я обновил Phoenix с 1.1.6 до 1.2 и теперь получаю странную ошибку CompileError.

(CompileError) web/views/main_view.ex:2: module Rejack.Router.Helpers is not loaded and could not be found

Я сравнил свежесгенерированный проект Phoenix 1.2 файл за файлом со своим и не смог найти каких-либо существенных отличий.

Часть view моего web.ex выглядит так:

def view do
  quote do
    require Logger

    use Phoenix.View, root: "web/templates"

    # Import convenience functions from controllers
    import Phoenix.Controller, only: [get_csrf_token: 0, get_flash: 2, view_module: 1]

    # Use all HTML functionality (forms, tags, etc)
    use Phoenix.HTML

    import Rejack.Router.Helpers
    import Rejack.ErrorHelpers
    import Rejack.Gettext
  end
end

и вид тоже довольно стандартный

defmodule Rejack.MainView do
  use Rejack.Web, :view
end

Любая идея, что вызывает это?

Редактировать: Единственное существенное отличие от обычного проекта Phoenix заключается в том, что я использую не postgrex, а mongodb_ecto (поэтому я застрял на phoenix_ecto 2.x).


person Philip Claren    schedule 24.06.2016    source источник
comment
Странно, может попробовать перекомпилировать phoenix?   -  person NoDisplayName    schedule 24.06.2016
comment
Все перепробовал :-/ удалил _build и deps.   -  person Philip Claren    schedule 24.06.2016
comment
Я правильно понимаю: недавно созданный проект работает нормально? также маловероятно, но проверяли ли вы владельца и права доступа к файлу deps/phoenix/lib/phoenix/router/helpers.ex?   -  person dercz    schedule 01.07.2016
comment
Права в порядке. Если я вернусь к 1.1.6, все будет работать как надо. Это действительно странно.   -  person Philip Claren    schedule 01.07.2016


Ответы (1)


Это может быть связано с использованием «forward» в качестве уловки всех ваших маршрутов, указывающих на контроллер, а не на Plug.

forward "/", PageController, :index

Если у вас есть это в ваших маршрутах, и вы измените его, чтобы вместо этого использовать get "/*path", это должно исправить ошибки компиляции для вас.

get "/*path", PageController, :index
person Ben Barber    schedule 02.07.2016
comment
Вы, сэр, спасатель! - person Philip Claren; 03.07.2016