2017-02-17 1 views
0

Вот соответствующие действия контроллера:Phoenix App Перенаправление на другую страницу в производстве

def create(conn, %{"post" => post_params}) do 
    changeset = Post.changeset(%Post{}, post_params) 

    case Repo.insert(changeset) do 
     {:ok, _post} -> 
     conn 
     |> redirect(to: page_path(conn, :thanks)) 
     {:error, changeset} -> 
     render(conn, "new.html", changeset: changeset) 
    end 
    end 

В разработке - это действие перенаправляет пользователя на благодарственное страницу после создания поста. В производстве; однако он перенаправляет их на example.com/posts вместо example.com/thanks.

В производстве страница отображается следующим образом:

enter image description here

Почему это происходит и как я могу это исправить?

Заранее спасибо.

+1

Что говорят журналы? –

+0

Если вы перенаправлены на '/ posts', я подозреваю, что' Repo.insert' возвратил '{: error, changeset}' и, таким образом, ваш случай попал во второе предложение, которое не перенаправляет вас, а просто отображает снова создайте форму. Хотя, учитывая, что он также показывает 500, я думаю, что есть что-то еще, что не работает. – narrowtux

+0

Покажите фрагмент вашего маршрутизатора, ': thanks' это, конечно, не маршрут REST - вы его специально добавили? – PatNowak

ответ

0

Проблема была в том, что я не создал таблицу в моей производственной базе данных, запустив heroku run mix ecto.migrate. Ошибка состояла в том, что сообщение не создавалось.

Смежные вопросы