如何使用 scrivener 在 phoenix 框架中删除表单请求后重定向回当前页面
How to redirect back to current page after delete form request in phoenix framework using scrivener
我在 phoenix 框架中使用 scrivener_ecto 和 scrivener_html。
我有一个联系人列表,其中有 300 个联系人。
当我在第 6 页单击删除联系人时,提交删除后,我重定向到联系人列表的第一页。
我想在删除后留在当前页面(如第 6 页)。我该怎么做?
我试图从删除控制器获取参数信息,但它没有页面信息(查询参数)我试过了
IO.inspect conn.query_string
但是 returns ""
这是 person_controller.ex
中的删除操作
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
在模板中
<%= 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 %>
您可以在模板中再次传递页码:
<%= button to: phonebook_path(@conn, :delete, phonebook.id, person.id, page: @conn.params["page"]) %>
然后将其传播回 delete
中的 show
操作:
conn
|> put_flash(:info, "Contact deleted successfully")
|> redirect(to: phonebook_path(conn, :show, phonebook, page: conn.params["page"]))
我在 phoenix 框架中使用 scrivener_ecto 和 scrivener_html。 我有一个联系人列表,其中有 300 个联系人。 当我在第 6 页单击删除联系人时,提交删除后,我重定向到联系人列表的第一页。 我想在删除后留在当前页面(如第 6 页)。我该怎么做?
我试图从删除控制器获取参数信息,但它没有页面信息(查询参数)我试过了
IO.inspect conn.query_string
但是 returns "" 这是 person_controller.ex
中的删除操作 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
在模板中
<%= 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 %>
您可以在模板中再次传递页码:
<%= button to: phonebook_path(@conn, :delete, phonebook.id, person.id, page: @conn.params["page"]) %>
然后将其传播回 delete
中的 show
操作:
conn
|> put_flash(:info, "Contact deleted successfully")
|> redirect(to: phonebook_path(conn, :show, phonebook, page: conn.params["page"]))