在我的routes.rb文件中,我有一个资源:
resources :authentication
但我也想创建一个自定义路线,因此在上一行下面有以下内容:
scope :authentication do
get 'is_signed_in', to: 'authentication#is_signed_in?'
end
然后我跑了 bin/rake routes
和我的控制器有这个:
class AuthenticationController < ApplicationController
def is_signed_in?
if user_signed_in?
render :json => {"signed_in" => true, "user" => current_user}.to_json()
else
render :json => {"signed_in" => false}.to_json()
end
end
end
但是,当我尝试访问此路由时,我不断收到404。这就是我尝试访问的方式:
$.ajax({
method: "GET",
url: "/authentication/is_signed_in.json"
})
我错过了什么吗?我必须做一些特殊的事情才能允许带有.json
扩展名的路由吗?
您不需要在scope
这里使用。只需在以下行之前添加以下内容resources :authentication
:
get 'authentication/is_signed_in', to: 'authentication#is_signed_in?'
或者,也许更规范(请参阅docs),您可以向给定资源添加更多操作,如下所示:
resources :authentication do
get 'is_signed_in', on: :collection
end
但是,在这种情况下,您可能需要将is_signed_in?
方法名称更改AuthenticationController
为is_signed_in
(?
末尾没有)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句