首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在菲尼克斯框架中删除表单请求后如何使用划线器重定向回当前页面

在菲尼克斯框架中删除表单请求后如何使用划线器重定向回当前页面
EN

Stack Overflow用户
提问于 2018-10-12 18:38:39
回答 1查看 664关注 0票数 1

我在菲尼克斯框架中使用scrivener_ecto和scrivener_html。我有一个有300个联系人的联系人列表。当我单击删除第6页中的联系人时,在提交删除后,重定向到联系人列表的第一页。我想在删除后留在当前页面(如第6页)。我该怎么做?

我试图从delete控制器获得params信息,但是它没有我尝试过的页面信息(查询params)。

代码语言:javascript
复制
IO.inspect conn.query_string

但是它返回"“这里是person_controller.ex中的delete操作

代码语言:javascript
复制
  def action(conn, _) do
    user = conn.assigns.current_user
    phonebook = Contact.get_phonebook!(conn.params["phonebook_id"], user.id)
    arg_list = [conn, conn.params, phonebook]
    apply(__MODULE__, action_name(conn), arg_list)
  end

  def delete(conn, %{"id" => id}, phonebook) do
    person = Contact.get_person!(id, phonebook.id)
    {:ok, _person} = Contact.delete_person(person)

    conn
    |> put_flash(:info, "Contact deleted successfully.")
    |> redirect(to: phonebook_path(conn, :show, phonebook))
  end

内模板

代码语言:javascript
复制
<%= button to: phonebook_person_path(@conn, :delete, @phonebook.id, person.id), method: "delete", data: [confirm: "Are you sure?"], class: "btn btn-danger" do %><i class="material-icons icon-button">close</i><% end %>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-13 18:22:27

您可以在模板中再次传递页码:

代码语言:javascript
复制
<%= button to: phonebook_path(@conn, :delete, phonebook.id, person.id, page: @conn.params["page"]) %>

然后将其传播回show操作(在delete中)。

代码语言:javascript
复制
conn
|> put_flash(:info, "Contact deleted successfully")
|> redirect(to: phonebook_path(conn, :show, phonebook, page: conn.params["page"]))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52785347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档