有没有办法在padrino控制器中确定路由名称?例如,在before块中,我希望能够根据路由执行一些预先确定的操作。所以,就像这样:
before do
check_authorization_for(:route_name)
end
其中":route_name“应该是类似于”更新“或”删除“或”创建“之类的东西。就像现在一样,我只需要检查当前用户是否有权限在每个控制器方法开始时执行请求的操作。我们的授权方案依赖于数据库中的信息,而这些权限依赖于控制器操作,因此,如果有一种方法可以确定控制器中路由的名称(即,如果我可以确定正在调用"update“操作),我可以只使用一个块来测试授权,而不必在每个操作中执行检查。
我确信肯定有一种非常简单的方法可以做到这一点,但我似乎找不到任何关于它的文档。提前感谢您的帮助。
发布于 2012-06-20 21:35:03
试一试
before :show, :edit, :destroy do
Post.find(params[:id])
end
或者,如果您更喜欢直接访问路由对象:
request.route_obj
也就是说。
request.route_obj.controller
如果你想混合当前路径,rails中有一些类似于current_page
的东西。
# http://localhost:3000/category/1/products/page/3
current_path('page' => 4) # => http://localhost:3000/category/1/products/page/4
https://stackoverflow.com/questions/11119132
复制相似问题