如何获取与我的网址的最终参数匹配的rails路由?

时间:2011-12-27 23:32:14

标签: ruby-on-rails rails-routing

如果用户在网址中使用加密密码,我希望允许用户自动登录。我有以下网址,我想与rails路由匹配:

/attendants/update_player_status/game/1/maybe/user_hash/$2a$10$1kY8xvOjkqZJJJGWDd0q2Oeyl7kICSBDPTYzGhkJ6pZnE6YA/nJie

其中url的后半部分可以包含任何字符,例如*(即它可以有'/''$''*'等)

我的路线有效,但随后它会在参数中弹出“/”(如上所示):

match '/attendants/update_player_status/game/:game_id/:status/user_hash/:user_hash' => 'attendants#update_player_status_using_hash', :as => 'update_player_status_using_hash'

有关我应该做什么的任何建议?一旦我正确地拉出参数,我将使用它来登录用户进入网站,并允许非常有限的访问。

1 个答案:

答案 0 :(得分:1)

一个选项是route globbing(来自文档):

match 'photos/*other' => 'photos#unknown'

# In controller, params[:other] is everything after 'photos'

根据this answer,您还可以在匹配项constraints中使用正则表达式来设置斜杠。

IMO的表现更优雅;它可能取决于你的其他路线,这是最好的解决方案。