首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Padrino:在控制器中确定路由名称

Padrino:在控制器中确定路由名称
EN

Stack Overflow用户
提问于 2012-06-20 20:03:22
回答 1查看 1.2K关注 0票数 1

有没有办法在padrino控制器中确定路由名称?例如,在before块中,我希望能够根据路由执行一些预先确定的操作。所以,就像这样:

代码语言:javascript
运行
复制
before do
  check_authorization_for(:route_name)
end

其中":route_name“应该是类似于”更新“或”删除“或”创建“之类的东西。就像现在一样,我只需要检查当前用户是否有权限在每个控制器方法开始时执行请求的操作。我们的授权方案依赖于数据库中的信息,而这些权限依赖于控制器操作,因此,如果有一种方法可以确定控制器中路由的名称(即,如果我可以确定正在调用"update“操作),我可以只使用一个块来测试授权,而不必在每个操作中执行检查。

我确信肯定有一种非常简单的方法可以做到这一点,但我似乎找不到任何关于它的文档。提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-20 21:35:03

试一试

代码语言:javascript
运行
复制
before :show, :edit, :destroy do
    Post.find(params[:id])
end

或者,如果您更喜欢直接访问路由对象:

代码语言:javascript
运行
复制
request.route_obj

也就是说。

代码语言:javascript
运行
复制
request.route_obj.controller

如果你想混合当前路径,rails中有一些类似于current_page的东西。

代码语言:javascript
运行
复制
# http://localhost:3000/category/1/products/page/3
current_path('page' => 4) # => http://localhost:3000/category/1/products/page/4
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11119132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档