加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用’.’来路由路由和参数.在他们中

发布时间:2020-12-16 23:29:14 所属栏目:百科 来源:网络整理
导读:我正在使用rails来保护对仅需要为Web应用程序的某些用户提供服务的文件的访问权限.为此,我有一个控制器方法,它接受有关他们想要访问的文件的信息,检查他们的授权,然后如果他们被授权使用x-sendfile将它发送给他们.除了一个障碍之外,这个概念工作得很好:如果
我正在使用rails来保护对仅需要为Web应用程序的某些用户提供服务的文件的访问权限.为此,我有一个控制器方法,它接受有关他们想要访问的文件的信息,检查他们的授权,然后如果他们被授权使用x-sendfile将它发送给他们.除了一个障碍之外,这个概念工作得很好:如果他们请求一个资源.在其中我的路由不知道处理它.在我的路线文件中我有:
match 'atb_resources/:guid/:resource'  => 'atb_resources#show',:as => :get_atb_resource,:via => :get

然后如果我在我的规范中尝试这个:

get 'show',:guid => 'some_guid',:resource => 'blah.txt'

规范失败了:

Failure/Error: get 'show',:guid => @atb.guid,:resource => 'blah.txt'
 ActionController::RoutingError:
   No route matches {:guid=>"ABCDEFG5",:resource=>"blah.txt",:controller=>"atb_resources",:action=>"show"}

但这没关系:

get 'show',:resource => 'blahDOTtxt'

我假设问题出在我的路由上,但我真的不明白周期如何影响路由.有任何想法吗?

解决方法

对于Rails 3,您可以将其添加到您的路线:
:constraints => { :resource => /.*/ }

for Rails 2(AFAIK):

:requirements => { :resource => /.*/ }

Rails会尝试将.txt解释为格式说明符,而不是其中之一.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读