Rails将自定义路由添加到现有资源

duxfox--

在我的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扩展名的路由吗?

伊万·A

您不需要在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?方法名称更改AuthenticationControlleris_signed_in?末尾没有)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将自定义标头添加到所有模块中的所有资源

将自定义字段添加到Dokan上的现有表单(wordpress / woocoomerce)

将自定义命令添加到qmake中的现有目标

将自定义函数添加到 Python 中的现有类

将自定义样式添加到Mahapps.Metro现有样式

将自定义属性添加到现有视图

如何将自定义AxisItem添加到现有的PlotWidget?

Laravel-将自定义样式添加到现有app.scss

将自定义字段添加到现有视图的问题

如何使用Java将自定义字段添加到Salesforce中的现有对象

是否可以将自定义视图添加到您无法访问项目文件的现有MVC站点?

如何以编程方式将自定义NSToolbarItem添加到现有工具栏

如何使用现有的线框主题将自己的CSS添加到Sitecore SXA自定义组件中?

如何将自定义映射添加到现有的 mapStruct 映射器?

如何将自定义类添加到某些路由的 body 元素 - nexjts

Laravel将自定义中间件添加到路由组

如何将自定义数据添加到路由?

如何将自定义装饰器添加到FastAPI路由?

将自定义路由添加到Zend REST控制器

将自定义表单添加到Devise编辑页面Ruby on Rails中

如何将自定义投票按钮添加到Rails应用

将自定义函数添加到对象原型

R:将自定义图例添加到ggplot

将自定义动画添加到popToRootViewController

将自定义元素添加到ngRepeat列表

将自定义样式的按钮添加到CKEditor

将自定义命令添加到 gradle 脚本

将自定义策略添加到角色 (taskRole)

将自定义对象列表添加到Redis