【发布时间】:2016-06-07 00:48:08
【问题描述】:
我正在尝试在应用中实现不同的语言。所以我所做的是在 db 中的 Session 中创建了 lang 变量,它保留了当前选择的语言。
问题是我正在通过更新操作调用和更新值:
def update(conn, %{"id" => id, "session" => session_params}) do
session = Repo.get!(Session, id)
changeset = Session.changeset(session, session_params)
case Repo.update(changeset) do
{:ok, _session} ->
conn
|> put_flash(:info, "Session updated successfully.")
|> redirect(to: page_path(conn, :tableshow))
{:error, changeset} ->
render(conn, "edit.html", session: session, changeset: changeset)
end
end
,将其重定向到特定路径(此处为:page_path)。我的问题:一旦调用动作,是否可以获得当前路径并重定向到它?那么,当您更改语言时,它不仅会一直将您重定向到一个特定页面,而是会重新加载当前页面,即调用该操作的位置? 语言选择器位于每个页面的标题中。所以我希望页面只是重新加载。有什么建议吗?
附加信息:我正在像这样从 app.html.eex 调用操作
<%= render Pos1.SessionView, "session_en.html", changeset: @changesetlang, action: session_path(@conn, :update, @session) %>
其中 session_en.html 是:
<%= form_for @changeset, @action, fn f -> %>
<%= hidden_input f, :lang, value: "1" %>
<%= submit "EN", class: "btn btn-primary" %>
<% end %>
【问题讨论】:
-
能否请您发布您用于将链接/表单从您应用中的所有页面添加到此操作的代码?
-
嘿@Dogbert 这是表单/链接代码。