Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在URL中手动指定:删除请求?_Ruby On Rails_Http - Fatal编程技术网

Ruby on rails 如何在URL中手动指定:删除请求?

Ruby on rails 如何在URL中手动指定:删除请求?,ruby-on-rails,http,Ruby On Rails,Http,情况: 我想在Rails中销毁当前会话,目前已通过Desive登录到管理员模型设置 我原以为在URL中输入site.io/admins/sign\u就足够了,但这假设了GET请求,不起作用 没有与[GET]“/admins/sign\u”匹配的路由 需要发出method::delete请求来销毁会话 可以像site.io/admins/sign_out{action:delete}这样做吗 更新 根据请求,这是与管理员相关的路由 devise_for :admins 要使用Desive注销,您

情况: 我想在Rails中销毁当前会话,目前已通过Desive登录到管理员模型设置

我原以为在URL中输入
site.io/admins/sign\u
就足够了,但这假设了
GET
请求,不起作用

没有与[GET]“/admins/sign\u”匹配的路由

需要发出
method::delete
请求来销毁会话

可以像
site.io/admins/sign_out{action:delete}
这样做吗

更新

根据请求,这是与管理员相关的路由

devise_for :admins

要使用Desive注销,您需要发布到
/admins/sign\u out
。我使用rails
link\u to
来帮助实现这一点

<%= link_to "Log Out", destroy_admin_session_path, method: :delete %>
对于
user
型号,只需将
admin
替换为
user

<%= link_to "Log Out", destroy_user_session_path, method: :delete %>



来源:

要使用Desive注销,您需要发布到
/admins/sign\u out
。我使用rails
link\u to
来帮助实现这一点

<%= link_to "Log Out", destroy_admin_session_path, method: :delete %>
对于
user
型号,只需将
admin
替换为
user

<%= link_to "Log Out", destroy_user_session_path, method: :delete %>



来源:

如果您强制注入
site.io/admins/sign\u

它将使用
参数:{“id”=>“sign_out”}
将您发送到控制器的显示操作。因为它假定这是一个显示操作,而不是调用
Delete
函数


所以,我认为直接从URL强制使用delete方法是不可能的。

如果您强制注入
site.io/admins/sign\u

它将使用
参数:{“id”=>“sign_out”}
将您发送到控制器的显示操作。因为它假定这是一个显示操作,而不是调用
Delete
函数

所以,我认为直接从URL强制使用delete方法是不可能的。

试试这个:

<%= link_to "Sign Out", destroy_admin_session_path, :method => :delete %>
:删除%>
试试这个:

<%= link_to "Sign Out", destroy_admin_session_path, :method => :delete %>
:删除%>

不,您不能在浏览器上手动键入链接并将其注销,因为在浏览器中您不能指定
PUT
POST
Delete
。如果您将注销路径定义为
GET
方法,则可以直接输入路径并将其作为浏览器注销,默认情况下提供了
GET
方法。您可以在Rest客户机上这样做,如下面的postman

http://localhost:3000/users/sign_out.html

选择方法为
DELETE

否您不能在浏览器上手动键入链接并将其注销,因为在浏览器中您不能指定
PUT
POST
DELETE
。如果您将注销路径定义为
GET
方法,则可以直接输入路径,并默认情况下将其作为浏览器注销一种
GET
方法。您可以在Rest客户机上这样做,如下面的postman

http://localhost:3000/users/sign_out.html

选择方法为
DELETE

是否可以与我们共享路由Devision在创建自己的会话时附带路由。你能添加你正在使用的视图吗?我的意思是,我想通过在浏览器中手动键入url来注销。这有可能吗?您能否与我们分享RouteDesigne创建自己的会话以及它们的路径。你能添加你正在使用的视图吗?我的意思是,我想通过在浏览器中手动键入url来注销。这可能吗?我认为调用的方法是
DELETE
in sign\u out not
POST
。它是一个HTTP
POST
请求,带有
DELETE
方法。我认为调用的方法是
DELETE
in sign\u out not
POST
。它是一个HTTP
POST
请求,带有
DELETE
方法。