我在禁用JS时测试了我的网站。并得到一个有趣的错误。禁用javascript时无法退出设计
它发生在着陆页上,当Client
登录并尝试注销。 (Client
是一个设计模型)
我的导航栏有此注销链接:启用JS时
<li><%= link_to 'exit', destroy_client_session_path, method: :delete %></li>
一切顺利,但是当JS被禁用我得到这个错误:
ActiveRecord::RecordNotFound in ClientsController#show
Couldn't find Client with 'id'=sign_out
这发生在clients_controller.rb(我有一个clients
文件夹,其中包含所有设计控制器:confirmations_controller.rb
,omniauth_callbacks_controller.rb
,...但我也有一个clients_controller.rb
文件与经典的REST:show,...)
错误发生在该控制器的show动作:
def show
if client_signed_in? && current_client.id == Client.find(params[:id]).id then
@client = Client.find(params[:id])
else
redirect_to root_path
end
end
我检查这里如果当前登录的client
是匹配的是在导航栏通过客户端,所以只有登录客户可以看到他们非常档...
虽然控制器无法进行检查似乎..
我的问题:为什么将签出送我到客户端控制器,为什么ENAB ling或禁用JS在这里有一个作用?
该死的。奇迹般有效!!谢谢。虽然你可以确认这是Devise代码,当调用删除方法时触发JS ...原因我想删除只是一个HTTP查询是独立于JS – Maxence
我更新了答案,它来自'jquery-ujs' – Iceman